使用TCP协议后,当某个设备与服务器连接后,
1、数据的传输是否总是通过这个连接进行
2、TCP不会中断该连接
3、设备即使间隔了较长时间,如1小时来传输数据,是否还是会依然使用一开始建立的连接进行传输
如果以上全都是,
c#socket编程,使用TCP协议,tcpListener.BeginAcceptTcpClient时,是否能根据是否新设备而建立新连接还是继续使用已有连接?
1、数据的传输是否总是通过这个连接进行
2、TCP不会中断该连接
3、设备即使间隔了较长时间,如1小时来传输数据,是否还是会依然使用一开始建立的连接进行传输
如果以上全都是,
c#socket编程,使用TCP协议,tcpListener.BeginAcceptTcpClient时,是否能根据是否新设备而建立新连接还是继续使用已有连接?
只有在Read/WRite时才能再次获悉状态,所以可以通过心跳方式维持这个逻辑意义上的连接使用TCP协议后,当某个设备与服务器连接后,
1、数据的传输是否总是通过这个连接进行
不是,如果超时(超出TCP的逻辑连接时间),判定失败,回收后下次肯定重新建立连接
2、TCP不会中断该连接
本身就没有连接
3、设备即使间隔了较长时间,如1小时来传输数据,是否还是会依然使用一开始建立的连接进行传输
看你Timeout怎么设置了
可不可以这样理解,当设备与服务器连接正常后,只要在比较短的时间内发送心跳包,设备就不需要再和服务器重新建立连接了。
表现在c# socket编程中,就是
clientListener.EndAcceptTcpClient(ar).GetStream().BeginRead(...)的回调方法中继续调用BeginRead?而设备不是连续发送数据,而是间隔几十秒,这样做正确么?