1

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

4

3 回答 3

4

理论上可以无限期地保持服务器套接字打开;但是,客户端套接字不能这样做。主要原因是客户端套接字依赖于服务器端套接字处理数据,而服务器套接字可能会关闭连接。

虽然可以无限期地保持连接打开,但实际方面通常会确保此类套接字不会永远保持打开状态。网络中断、中间路由器配置错误、带宽耗尽、计算能力不足等,所有这些都共同确保点对点连接充其量只是暂时的。

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

于 2012-06-13T16:00:42.433 回答
2

这更像是一个请求而不是一个答案,但作为一个用户,我发现套接字一直掉线。你不能让它们无限期地打开。当套接字意外关闭时,请 (A) 让用户知道连接已被丢弃,并且 (B) 让重新建立相同的连接变得非常容易。好吧,这涉及到游戏,但我有一些客户不承认服务器已经消失,而服务器不承认我与连接断开的那个人是同一个人。

于 2012-06-13T17:20:35.703 回答
2

没有什么是无限的(在计算中),但只要两个应用程序都在运行,您就可以保持套接字连接打开。

于 2012-06-13T15:55:33.670 回答