【发布时间】:2013-05-28 08:53:03
【问题描述】:
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 中是否可行,因为它是一种无连接协议?
【问题讨论】:
-
“监听套接字”是什么意思?
listen()不能与 UDP 套接字一起使用。你的意思是阅读/接收?是的,您可以使用sendto()发送任何您想要的任何目的地地址。 -
为什么?为什么不能通过接收请求的套接字发送响应?为什么要混淆客户?这里有什么问题?
-
抱歉延迟回复。问题是我正在尝试从另一台机器发送响应。在一台机器上接收请求并从另一台机器发送所有响应。