在connect之前,先用bind函数,绑定指定的网卡ip地址即可。
SOCKET sfd = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in sself;
sself.sin_family = AF_INET;
sself.sin_port = htons(t->port);
sself.sin_addr.s_addr = inet_addr(t->szIpAddr);
ret = (bind(sfd, (sockaddr *)&sself, sizeof(sself)));
if (ret < 0)
{
printf("$(%s:%d) exit\r\n", __FILE__, __LINE__);
return ;
}
sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(tarPort);
saddr.sin_addr.s_addr = inet_addr(szTarget);
ret = (connect(sfd, (sockaddr *)&saddr, sizeof(saddr)));