是否有可能通過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()讀取數據。 –