查找UDP数据包的源IP /进程

我在我的C程序中使用recvfrom()来接收来自多个客户端的UDP数据包,这些客户端可以使用自定义用户名登录。 一旦他们登录,我希望他们的用户名与唯一的客户端进程配对,这样服务器就会自动知道用户的来源。 如何从recvfrom()收到的数据包中获取此信息?

 #include  #include  #include  #include  int main() { int sock = socket(AF_INET, SOCK_DGRAM, 0); struct sockaddr_in addr; memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(1234); addr.sin_addr.s_addr = INADDR_ANY; bind(sock, reinterpret_cast(&addr), sizeof(addr)); char message[256]; struct sockaddr_in from; socklen_t fromLen = sizeof(from); recvfrom(sock, message, sizeof(message), 0, reinterpret_cast(&from), &fromLen); char ip[16]; inet_ntop(AF_INET, &from.sin_addr, ip, sizeof(ip)); std::cout << ip << ":" << ntohs(from.sin_port) << " - " << message << std::endl;