C 在一个端口上接收UDP请求,并通过另一个端口发送响应

C 在一个端口上接收UDP请求,并通过另一个端口发送响应,c,linux,udp,C,Linux,Udp,UDP是一种无连接协议。在我的服务器中,我在侦听模式下使用两个套接字: sfd3000=CreateUDPSocketAndListen(3000); sfd14000=CreateUDPSocketAndListen(4000); 我正在使用 socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); 创建套接字 我正在使用一个套接字接收请求 recvfrom(sfd3000, reqbuff,1024, 0,(struct sockaddr *)&cl

UDP是一种无连接协议。在我的服务器中,我在侦听模式下使用两个套接字:

sfd3000=CreateUDPSocketAndListen(3000);
sfd14000=CreateUDPSocketAndListen(4000); 
我正在使用

socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
创建套接字

我正在使用一个套接字接收请求

 recvfrom(sfd3000, reqbuff,1024, 0,(struct sockaddr *)&clientinfo, (socklen_t *)&sinfolen);
我可以使用另一个侦听套接字使用相同的clientinfo结构发送响应吗

sendto(sfd4000,respbuff,resplen, 0,(struct sockaddr *) &clientinfo, sinfolen);

这在UDP中是否可能,因为它是一种无连接协议?

您不需要侦听UDP协议。 如果你想读取一些数据,你只需打开并在读取中阻塞即可/你只需在打开后写入数据即可


简而言之,您可以通过另一个端口发送响应

您无需侦听UDP协议。 如果你想读取一些数据,你只需打开并在读取中阻塞即可/你只需在打开后写入数据即可


简而言之,您可以通过另一个端口发送响应

什么是“侦听套接字”<代码>侦听()不能与UDP套接字一起使用。你是说阅读/接收吗?是的,您可以使用
sendto()
通过提供任何目标地址发送到您想要的任何地方。为什么?为什么不能通过接收请求的套接字发送响应?为什么要混淆客户?这里有什么问题吗?很抱歉延迟回复。问题是我试图从另一台机器发送响应。在一台计算机中接收请求,并从另一台计算机发送所有响应。你说的“监听套接字”是什么意思<代码>侦听()不能与UDP套接字一起使用。你是说阅读/接收吗?是的,您可以使用
sendto()
通过提供任何目标地址发送到您想要的任何地方。为什么?为什么不能通过接收请求的套接字发送响应?为什么要混淆客户?这里有什么问题吗?很抱歉延迟回复。问题是我试图从另一台机器发送响应。在一台计算机中接收请求并从另一台计算机发送所有响应。