当前位置: 首页 > 面试题库 >

是否可以保持套接字无限打开

慕承允
2023-03-14
问题内容

我是网络编程的新手。我有兴趣通过Java服务器和C客户端之间的套接字建立网络连接并保持连接无限打开的可能吗?我想保持连接打开状态以在客户端之间交换XML数据。


问题答案:

从理论上讲,可以无限期地打开服务器套接字;但是,使用客户端套接字是不可能的。主要原因是因为客户端套接字取决于处理数据的服务器端套接字,并且服务器套接字可能会关闭连接。

尽管可以无限期地保持连接打开,但实际情况通常会确保此类套接字不会永远保持打开状态。网络中断,中间路由器中的配置错误,带宽耗尽,计算能力不足等都共同确保了点对点连接最多只是暂时的。

请注意,服务器端套接字是接收连接请求的套接字(产生具有自己的返回套接字的连接),因此即使没有连接也可以将其打开。如果您将套接字视为与另一台计算机的开放连接,则需要重新调整思路,以使服务器套接字有意义。



 类似资料:
  • 我编写了简单的服务器/客户端程序,其中客户端将一些硬编码数据以小块形式发送给服务器程序,服务器程序正在等待数据,以便将其打印到终端。在客户端,我在循环中调用send(),同时有更多的数据要发送,而在服务器上,我使用read()执行同样的操作,即返回的字节数为 如果我在完成发送后专门在客户端的套接字上调用close(),那么这个示例非常有效,但如果我不这样做,服务器将不会实际退出read()循环,直

  • 问题内容: 我正在通过com端口连续接收数据并进行一些解码。解码完成后,我必须将结果存储在sql数据库中。我在想,因为解码是每秒完成数十次(在while循环中始终运行),并且如果明智的做法是打开和关闭与sql server的连接,则每秒需要将数据存储到数据库数十次。每个while循环或只是使其保持打开状态并继续将数据写入数据库。首先这可能吗?其次,如果连接保持打开状态,那么第三方应用程序或计算机可

  • 我注意到netstat的套接字是打开的: 这是意料之中的行为吗?我是否需要显式地将连接头值设置为close以防止这种情况发生?

  • 问题内容: 运行python应用程序的目标计算机将具有三个可用的网络接口。通常,所有三个网络都将有很大的不同,但是,这三个中的两个可能存在于相似的网络上。 在下面的示例中,我无法控制ETH 2上的目标地址(因为它是预配置的系统),因此我不得不选择要以编程方式使用的适配器。 我相当确定这将取决于操作系统如何路由连接。我希望有一种使用python来解决问题的平台独立方法,因为该应用程序可能需要在Win

  • 寻找Web套接字实现的Hello World类型示例: 下面是来自PHP.NET的套接字创建引用,但这看起来比Web套接字更低级。 我想使用这个Web套接字,如caniuse.com上所示,现在所有新的主要浏览器都实现了这个套接字。 实际上,教程中有一个到PHPWebSockets的断链...这是应该使用的库吗? websockets.org有一个测试应用程序,但没有提到PHP。

  • 问题内容: 有一个简单的套接字服务器监听端口; 我想知道的是,有可能: 如果客户端发送请求,则服务器将直接处理该请求, 如果客户端发送请求,则服务器将客户端套接字更改为SSLSocket吗? 谢谢 问题答案: 是否可以将普通套接字更改为SSLSocket? 是的。在服务器端,以下工作: 默认情况下会将现有的转换为client-mode 。由于握手仅在您开始使用I / O流进行读/写时才开始,因此仍