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

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

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

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

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

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

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