是否有可能让插座保持无限时间

时间:2012-06-13 15:52:52

标签: java c sockets network-programming

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

这更像是一个答案,而不是一个答案,但作为一个用户,我发现套接字一直在下降。你无法让它们无法保持开放。当套接字意外关闭时,请(A)让用户知道连接已被删除,并且(B)使其真实易于重新建立相同的连接。好吧,这涉及游戏,但我有客户不承认服务器已经消失,服务器无法识别我与连接断开的人是同一个人。