我有一个使用 UDP 套接字发送数据的客户端-服务器应用程序,数据只需从客户端传输到服务器,并且服务器将始终具有相同的 IP。唯一的要求是我必须每秒发送大约 10 条消息
目前我正在通过以下方式进行操作:
public void SendData(byte[] packet)
{
IPEndPoint end_point = new IPEndPoint(serverIP, serverPort);
UdpClient udpChannel = new UdpClient(sourcePort);
udpChannel.Connect(end_point);
udpChannel.Send(packet, packet.Length);
udpChannel.Close();
}
我遇到的问题是,当我使用命令“udpChannel.Close()”时,服务器未在监听时需要 2-3 秒才能执行。(我在:如果我不调用 UdpClient.Close() 方法有什么缺点?)
我的问题是,如果我总是将数据包发送到相同的 IP 地址和端口,是否有必要在每次发送请求后连接套接字并关闭它?
我打算使用的代码如下:
UdpClient udpChannel;
public void SendData(byte[] packet)
{
udpChannel.Send(packet, packet.Length);
}
public void Initialize(IPAddress IP, int port)
{
IPEndPoint end_point = new IPEndPoint(serverIP, serverPort);
UdpClient udpChannel = new UdpClient(sourcePort);
udpChannel.Connect(end_point);
}
public void Exit()
{
udpChannel.Close();
}
这样做,是否有必要在发送数据之前对“SendData”方法进行一些检查?上面的代码有问题吗?
谢谢!