首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在广播套接字中发送私有UDP消息

在广播套接字中发送私有UDP消息
EN

Stack Overflow用户
提问于 2021-04-14 08:11:53
回答 1查看 102关注 0票数 3

我有一个广播频道,人们在UDP上谈论它及其工作,但是我想有时发送私人消息,但我的套接字在广播模式下?我有我想私下联系的人的情况。创建一个新的套接字是非常烦人的,所以我想有一种方法可以用好的in地址来发送消息,而不是在广播中。

代码语言:javascript
运行
复制
struct addrinfo *res = nullptr, *it;
  struct addrinfo hints;

  memset(&hints, 0, sizeof(struct addrinfo));
  hints.ai_family = AF_INET;
  hints.ai_socktype = SOCK_DGRAM;

  getaddrinfo(ip_address.c_str(), port.c_str(), &hints, &res);

  for (it = res; it != NULL; it = it->ai_next) {
    socket_ = socket(it->ai_family, it->ai_socktype, it->ai_protocol);

    sockaddr_ = it->ai_addr;
    socklen_ = it->ai_addrlen;

    break;
  }


  int enable = 1;

  setsockopt(socket_, SOL_SOCKET, SO_BROADCAST, &enable, sizeof(int));

然后,发送我的广播信息,我做这个

代码语言:javascript
运行
复制
sendto(socket_, message, len, 0, sockaddr_, socklen_);

我该换套餐吗?请帮助我:)

编辑暂时我决定创建一个新的套接字与Ipadress的人,我想,但它是非常“沉重”,并没有优化(我认为)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-03 08:21:37

sendto的参数告诉它要发送的地址和要发送到广播地址的地址。

如果在连接模式(SOCK_STREAM,SOCK_SEQPACKET)套接字上使用sendto(),则忽略参数dest_addr和addrlen (并且错误EISCONN可能在它们不为NULL和0时返回),并且在套接字未实际连接时返回错误ENOTCONN。否则,目标的地址由dest_addr指定,addrlen指定其大小。对于sendmsg(),目标地址由msg.msg_name提供,msg.msg_namelen指定其大小.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67087896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档