private
static
int
port =
1234
;
private
static
UdpClient udpClient;
private
static
Thread thread;
public
static
void
Start
()
udpClient =
new
UdpClient(port);
thread =
new
Thread(
new
ThreadStart(Listen));
thread.Start();
private
static
void
Listen
()
while
(
true
)
IPEndPoint remoteEP =
null
;
byte
[] data = udpClient.Receive(
ref
remoteEP);
string
message = Encoding.UTF8.GetString(data);
Console.WriteLine(
"Received: {0} from {1}"
, message, remoteEP.ToString());
byte
[] response = Encoding.UTF8.GetBytes(
"Response message"
);
udpClient.Send(response, response.Length, remoteEP);
public
static
void
Stop
()
udpClient.Close();
thread.Abort();
此示例创建了一个UDP服务器,它会监听指定端口上的所有传入数据报。当服务器接收到数据报时,它会将数据转换为字符串并将其输出到控制台。然后,服务器可以对收到的消息进行处理,并向客户端发送响应消息。
要启动服务器,请调用
Start
方法,该方法将创建一个新的UDP客户端和一个新线程以便监听传入的数据报。要停止服务器,请调用
Stop
方法,该方法将关闭UDP客户端并终止监听线程。
请注意,在使用UDP协议时,应该小心处理网络异常情况,如数据包丢失或重复。为了确保可靠性,建议使用TCP协议而不是UDP协议来进行网络通信。