当前位置: 首页 > 知识库问答 >
问题:

在UDP套接字上使用write()/read()?

闽鸿宝
2023-03-14

根据手册页:

send()和write(2)之间的唯一区别是标志的存在。使用零标志参数,send()等同于write(2)。另外,下面的调用send(sockfd,buf,len,flags);相当于sendto(sockfd,buf,len,flags,NULL,0);

所以:

  • 这是否意味着在UDP套接字上使用read完全可以(如果我不需要src_addr)?
  • 是否有方法在UDP套接字上使用write(就像现在我在sendtodest_addr参数中设置目标地址一样)?

共有1个答案

伯俊弼
2023-03-14
  • 如果不需要源地址,则在UDP套接字上使用read()完全可以。
  • 如果您将UDP套接字connect()连接到目标,则可以使用write()
 类似资料:
  • 我正在编写一个UDP客户端/服务器应用程序。服务器是广播服务器,它通过特定端口向同一子网上的两个客户端广播。每个客户端接收一个数据报,并向服务器发送一个响应。每个客户端都预先知道服务器的ip地址。 我的客户端基本上与http://man7.org/linux/man-pages/man3/getaddrinfo.3.html,的客户端示例相同,即它使用connect()函数来指定所有传出数据包的e

  • 我必须通过udp套接字发送多个变量类型:int数组和char。我想用相同的udp数据包发送它。标准溶液是什么?将所有内容转换为字节或类似的内容? 我使用的是:sendto(int-sockfd,const-void*buf,size\t len,int-flags,const-struct-sockaddr*dest\u-addr,socklen\t-addrlen); 我的代码是这样的:

  • 以前的代码是用c语言编写的,使用的是这样的代码: 这段代码可以工作,但我必须使用Netty在java中重新实现它。 在tcp中使用netty不是问题,但是用netty回复客户机对我来说是个问题,如果我想在通道上写,它失败了,出现了。 也许这与netty上的这个问题有关,但我不知道如何在代码中再现c行为。 如何回复客户? 多谢了。 编码器代码:

  • 我已经在Minikube上部署了一个UDP套接字服务器。套接字服务绑定到端口2152。下面是description pod命令中的IP片段。 我的客户机与minikube运行在同一个VM上,无法与服务器通信。我在客户端使用服务器地址IP 172.17.0.3,端口为2152。我还尝试使用minikube IP 192.168.49.2将UDP数据从客户端发送到服务器。 请帮忙,这里有什么问题。

  • 我想广播消息本地到许多应用程序。对于这一点,我认为UDP套接字是最好的IPC,纠正我,如果我是Worwn。 并倾听: 问题是我必须像这样通过IP192.168.1.255,但在实际场景中可能没有eth0接口,只有环回。那我怎么才能做到这一点呢?

  • 我正在处理一个应用程序,它将通过UDP从另一个本地服务接收RTP数据包。在协议的早期,我接收到一个带有IP地址的消息,我将从该IP地址接收这些RTP数据包,但端口号将被给出为0(零)...我将使用临时端口打开我的UDP套接字。我对给定消息的响应将包含我打开的实际端口,这样发送者就可以知道将数据包定向到哪里。 我的网络库是用实现套接字的。在哪里可以找到关于如何打开这样一个套接字而不指定非零端口(即使