网卡 A:192.168.111.112
网卡 B:10.113.114.115
若使用网卡 A(客户端 demo):
// Error checking omitted for expository purposes int sockfd = socket(AF_INET, SOCK_STREAM, 0); // Bind to a specific network interface (and optionally a specific local port) struct sockaddr_in localaddr; localaddr.sin_family = AF_INET; localaddr.sin_addr.s_addr = inet_addr("192.168.111.112"); localaddr.sin_port = 0; // Any local port will do bind(sockfd, (struct sockaddr *)&localaddr, sizeof(localaddr)); // Connect to the remote server struct sockaddr_in remoteaddr; remoteaddr.sin_family = AF_INET; remoteaddr.sin_addr.s_addr = inet_addr(server_ip); remoteaddr.sin_port = htons(server_port); connect(sockfd, (struct sockaddr *)&remoteaddr, sizeof(remoteaddr));