在两个端口上使用recvfrom接收数据是否可行?我有一个用于用户请求的端口和另一个用于聊天消息的端口。是否可以绑定两个不同端口的套接字,并使用一个recvfrom()接收数据?
谢谢
编辑 这段代码是否有效?
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));
我想在两个不同的端口接收数据。
recvfrom
才能获得客户端IP地址。 - Alnitakrecvfrom
函数提供多个套接字文件描述符。 - Alnitak