是否有可能通过2个端口上的recvfrom接收数据?我有一个端口用于用户请求,另一个端口用于聊天消息。是否有可能绑定两个套接字,使用不同的端口并通过一个recvfrom()接收数据?UDP在多个端口上接收数据
问候
编辑 这是否代码工作?
int socket_fd,socket_fd2;
struct sockaddr_in addr, chat_addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
chat_addr.sin_family = AF_INET;
chat_addr.sin_port = htons(4321);
chat_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
bind(socket_fd2, (struct sockaddr *) &chat_addr, sizeof(struct sockaddr_in));
bind(socket_fd, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
所以我想在两个不同的端口上接收数据。
所以我需要将两个套接字绑定到我的服务器并使用例如select? – user1324258
如何在使用select接收数据时获取发件人地址? – user1324258
您不会使用select()接收数据,而select()会告诉您哪个套接字有数据准备好读取,然后像平常一样使用recvfrom()读取数据。 –