繁体   English   中英

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

[英]Sending/receiving packets on networked computers with different UDP ports

如果我在局域网上有两台或多台计算机通过UDP通信,它们是否都必须使用同一端口才能接收彼此的消息? 例如,假设我的桌面使用端口1550发送消息,而我的笔记本(也位于LAN上)使用端口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和端口。 如果位于底层(物理框架),则只需将框架发送到目的地。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM