日期:2014-05-18  浏览次数:20801 次

关于tcp开发的一点疑惑
使用TCP协议后,当某个设备与服务器连接后,
1、数据的传输是否总是通过这个连接进行
2、TCP不会中断该连接
3、设备即使间隔了较长时间,如1小时来传输数据,是否还是会依然使用一开始建立的连接进行传输
如果以上全都是,
c#socket编程,使用TCP协议,tcpListener.BeginAcceptTcpClient时,是否能根据是否新设备而建立新连接还是继续使用已有连接?

------解决方案--------------------
本质上IP是无连接的,连接只是TCP这个的协议中的概念,所以这个连接是逻辑上的
只有在Read/WRite时才能再次获悉状态,所以可以通过心跳方式维持这个逻辑意义上的连接

使用TCP协议后,当某个设备与服务器连接后,
1、数据的传输是否总是通过这个连接进行
不是,如果超时(超出TCP的逻辑连接时间),判定失败,回收后下次肯定重新建立连接
2、TCP不会中断该连接
本身就没有连接
3、设备即使间隔了较长时间,如1小时来传输数据,是否还是会依然使用一开始建立的连接进行传输
看你Timeout怎么设置了