好的,所以我可以创建一个套接字并将消息发送到远程计算机(UDP btw)。我的问题是我需要知道将消息发送到哪个端口。远程计算机将在我发送的同一端口上进行响应。目前,它似乎正在选择随机的高端口,例如46555。是否有办法指定端口出在哪个端口上,或者有某种方法可以找出端口号是什么?
谢谢。
最佳答案
虽然可以选择特定的传出端口,但这通常不是这种方式。
通常,客户端将选择一个随机的,高编号的端口(正在这样做),然后服务器将检测到客户端正在使用哪个端口,并回复该端口。使用POSIX(Berkeley)套接字,服务器将使用recvfrom
函数而不是recv
函数来获取此信息。 recvfrom
函数使用额外的两个参数,它将使用接收到该数据包的地址(包括端口号)填充该参数。
关于c++ - 识别C++套接字端口号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3313628/