首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C/如何侦听多个UDP端口

C/如何侦听多个UDP端口
EN

Stack Overflow用户
提问于 2012-05-15 17:16:37
回答 1查看 3.6K关注 0票数 2

我正在开发的应用程序应该能够监听多个(现在是4个)端口号。我是否需要为这些端口的每个端口创建一个套接字,例如:

代码语言:javascript
运行
复制
if((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
    perror("error: could not create UDP socket\n");
    exit(EXIT_FAILURE);
}

bzero(&sock_addr, sizeof(sock_addr));
sock_addr.sin_family    = AF_INET;
sock_addr.sin_port      = htons(port1);
sock_addr.sin_addr.s_addr   = inet_addr(INADDR_ANY);

if(bind(sock_fd, (struct sockaddr *) &sock_addr, sock_len) < 0) {
    perror("error: could not bind UDP socket to AU\n");
    exit(EXIT_FAILURE);
}

或者有更优雅的方式来做到这一点呢?另外,我还读到了select()语句,这是我应该使用的东西吗?我想要在几个端口上侦听的原因非常简单,它应该识别我正在与之通信的应用程序。例如每个端口一个应用程序。

提前感谢您的评论。

// UPDATE:如何设置每个端口一个socket?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-15 17:18:40

是的,您需要为您希望通过其进行通信的每对(IP、端口号)提供单独的套接字。

是的,在设置好多个套接字之后,您完全可以使用select()函数(它不是一个“语句”,这意味着它在某种程度上是语言的一部分,它只是一个库中的函数)来服务多个套接字。

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

https://stackoverflow.com/questions/10597636

复制
相关文章

相似问题

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