在具有不同UDP端口的网络计算机上发送/接收数据包

Sending/receiving packets on networked computers with different UDP ports

本文关键字:数据包 网络计算机 UDP      更新时间:2023-10-16

如果局域网上有两台或多台计算机通过UDP通信,它们是否都必须使用同一端口才能接收彼此的消息?例如,假设我的台式机正在使用端口1550发送消息,而我的笔记本电脑也在局域网上,正在使用端口3746侦听和接收消息。在这种情况下,只使用目的地IP发送是否有效?如果没有,每台计算机都必须知道并指定接收器的端口吗?

对于UDP或TCP端点,必须设置地址和端口。启动器必须知道要发送到哪个地址端口。接收方可以使用getpeername()调用来确定发送方的地址端口组合,然后使用这些信息来构建回复消息的地址结构。两者不需要使用相同的端口号。

do they all have to be using the same port to be able to receive messages from one another

没有。不要求服务器和客户端使用相同的端口号;事实上,这通常是不可行的。但每个发送器都必须知道所需接收器的端口号。在响应的情况下,源地址和端口随请求一起出现。在请求的情况下,客户端必须以某种方式已经知道服务器ip:port。

在应用层通信时,必须指定目标ip和端口。如果在底层(物理帧),则可以将帧发送到目的地。