最近在用C#写基于tcp、udp进行数据发送与接收的程序。由于在tcp通信中客户端与服务器端的通信是基于握手协议的,所以一旦客户端断开与服务器端的连接时,服务器端需要检测客户端的这个动作,并返回到端口侦听状态而不是继续处于读缓冲区数据状态,否则客户端下次就无法与服务器再次连接了。下面是我写的tcp服务器端的部分程序():
private void Listen()
{
tcpServerListener.Start();
while (listenStatusFlag)//网络侦听标志位,用于手动关闭端口侦听服务
{
stRead = tcpServerListener.AcceptSocket();//接收tcp连接的端口连接请求,客户端断开连接时需要返回到这条语句
SaveReceivedData();
}
}
private void SaveReceivedData()
{
EndPoint remoteEP = stRead.RemoteEndPoint;
IPEndPoint remoteIP = (IPEndPoint)(remoteEP);
//获取请求的远程计算机名称