大家好:
我想用两个线程各自创建一个socket,分别和两个进程通信,主线程创建的是服务器端socket,线程A是负责和进程A通信的socket。测试了下,主线程的socket和客户端通信没有问题,而线程A不能和进程A创建连接,总是返回错误10061,好像通过一次。不知道是怎么回事,进程A是另一个服务器,我用其他客户端和A服务器通信是没有问题的,请问是什么原因?多谢。
DWORD WINAPI child(LPVOID lpParameter)
{
int opt=SO_REUSEADDR;
char tempbuff[MAXDATASIZE];
my_addr.sin_addr.S_un.S_addr=inet_addr("192.168.4.83");
my_addr.sin_family=AF_INET;
my_addr.sin_port=(PORTA);
if((mysockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
cerr<<"create socket failed!"<<endl;
return -1;
}
setsockopt(mysockfd,SOL_SOCKET,SO_REUSEADDR,(char*)&opt,sizeof(opt));
if(connect(mysockfd,(sockaddr*)&my_addr,sizeof(my_addr))==-1)
{
cerr<<"connect to server failed!"<<GetLastError()<<endl;
return -1;
}
memset(&tempbuff,'\0',MAXDATASIZE);
send(mysockfd,recvbuf,strlen(recvbuf),0);
recv(mysockfd,recvbuf,MAXDATASIZE,0);
return 0;
}
调试的时候,每次都是运行到if(connect...)这一句,就返回了,刚接触这个,望不吝赐教!