TCP 通讯? tcp客户端与服务器端连接时间?

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:01:07
在本机上测试,服务器开起后,客户连接成功. 测试发现,过半个多小时或各长的时间,服务器与客户端不发送任何数据仍能保持连接.

但把服务器放在远程独立主机上. 会发现在不收发任何数据情况下,6分钟之后服务器就会报:"无法从传输连接中读取数据,远程主机关闭一个现有的连接".

这是为什么?
垃级回收机制?

服务器接收到客户端请求后就开起针对该客户端的线程..
线程里 while(true){ //tcpclient } 这个tcpclient一直在用..

该不会被回收的吧..

服务器设置的话应该是什么问题呢?

--------------------

在局域网里没有这个问题存在...,而且奇怪的是,远程主机上6分钟之后,就报:远程主机已关闭现有的连接........

但此时在客户端,通过连接成功后的tcpclient对象while(true) {//}
监听的时候,不报错..

但如果直接把服务器关闭后会报错..

-----------
首先在本机上测试,服务端与客户端在同一台机子上.
然后局域网里测试,服务端与客户端不在同一台机子上.
再就将服务端放在远程独立主机上测试就有了那个问题..

客户端与服务器都是用c#写的

是因为垃圾回收机制
****************************************
如果你在服务器端一直保持访问这个连接。那就应该是客户端的问题,客户端是否也一直保持访问?
****************************************
lz叙述不太一致,到底是在局域网正常,还是仅仅在本机正常??
如果在局域网正常,主要考虑路由器等网络设备的问题。远程主机如果不是运行你的C#程序,要考虑的东西就更多了。比如你用80端口访问百度,它当然会响应后立即断开连接。
*******************************************
“远程”的概念,对于你的程序来说,包括局域网和你所谓的远程,没有任何区别,都不是“本地”。
所以,只是网络设备的问题。比如路由器配置。如果你不能控制,就需要不停地进行握手。

服务器设置的问题