tpc socket 能不能 先bind一个自己的ip 再connet 服务器 ?
lwykj 2007-07-27 03:57:27 情况这样的!
我的机器上有多个ip(公网ip)!
我连接服务器的时候,希望通过不同的ip,连接到别的服务器上去!
struct sockaddr_in Server;
struct sockaddr_in mulIP;
memset(&Server, 0, sizeof(Server));
memset(&mulIP, 0, sizeof(mulIP));
Server.sin_family = AF_INET; //设置目标服务器地址
Server.sin_port = htons(RemotePort);
Server.sin_addr.s_addr = inet_addr(HostName);
// Create Socket
*ServerSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//
if (*ServerSocket == INVALID_SOCKET)
return false;
mulIP.sin_family = AF_INET; //设置本机ip
mulIP.sin_port = htons(0);//LisPort
mulIP.sin_addr.s_addr = inet_addr(listenip);
//希望通过 bind实现,将一个本机指定ip,关联到 *ServerSocket 然后通过connect 去连接目标服务器
//试验结果 bind 成功
//connect 返回 -1
err code : 10060 [Error] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
bind(*ServerSocket,(sockaddr*)&mulIP,sizeof(mulIP)); //添加发送ip
connect(*ServerSocket,(const SOCKADDR *)&Server,sizeof(Server));
请问下,这种方法是否可行,如何才能行的通?