C ++ - 使用两台计算机将端口分配给UDP客户端

时间:2014-02-21 01:55:37

标签: c++ sockets udp client port

我正在使用交换机在同一LAN上的两台独立机器上使用winsock设置基本的UDP服务器/客户端应用程序。我需要从特定端口向客户端发送数据到服务器。

到目前为止我是如何做到的是服务器是两个插槽(一个用于发送,一个用于接收)并将接收端口绑定到7777.客户端还必须有套接字(一个用于发送,一个用于接收)发送消息到达港口7777.

现在在recvfrom()函数上,我将发件人端口设置为任意数字35708.但我希望发件人端口为8000。

我的问题是,我可以指定邮件的发送端口吗?

1 个答案:

答案 0 :(得分:0)

如果在sendto()之前使用bind(),则可以选择设置端口,或让网络堆栈确定端口。

struct sockaddr_in myaddr;
...
myaddr.sin_port = htons(PORT); /* where PORT is defined elsewhere */

myaddr.sin_port = htons(0); /* if zero, let the system determine the port */

顺便说一句,我不知道这是否符合您的使用案例,但您不需要设置两个插槽用于双向通信。例如,请参阅:http://www.cs.rutgers.edu/~pxk/417/notes/sockets/udp.html