在服务端向客户端发送长数据时,断开了TCP通信,恢复连接后,为什么能接着发送之前没发送完的?
断开使用的这个方法
```c#
public static void SafeClose(this Socket socket)
{
try
{
socket.Shutdown(SocketShutdown.Both);
}
catch (Exception exp)
{
//处理异常
}
socket.Close();
}
然后同时关闭了监听和发送线程
启动用的这个方法
ip = IPAddress.Parse(host);
ipe = new IPEndPoint(ip, port);
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//绑定EndPoint对象(地址)
server.Bind(ipe);
//开始监听
server.Listen(0);
t = new Thread(Listen);
t.Start();
Listen里面包括了send如下
byte[] bytes = Encoding.ASCII.GetBytes(res[index]);
//发送消息给客户端
socket.Send(bytes, bytes.Length, 0);
textBox1.Text = textBox1.Text+res[index]+"\r\n";
index++;
这样的效果虽然达到了我的预期效果,但是我有点想不明白,为什么中断了,重启线程还能接着发送信息,我本以为是要自己去找中断前发送到哪个位置了,然后接着发送。希望我问题描述明白了,期待大家的帮助