关于socket错误10061
大家好:
我想用两个线程各自创建一个socket,分别和两个进程通信,主线程创建的是服务器端socket,线程A是负责和进程A通信的socket。测试了下,主线程的socket和客户端通信没有问题,而线程A不能和进程A创建连接,总是返回错误10061,好像通过一次。不知道是怎么回事,进程A是另一个服务器,我用其他客户端和A服务器通信是没有问题的,请问是什么原因?多谢。
{
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;
}
我想用两个线程各自创建一个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...)这一句,就返回了,刚接触这个,望不吝赐教!
...全文
相关推荐
socket错误代码对应表
**Socket error #10061 - Connection refused**- **含义**:试图建立连接时,远程服务器拒绝了该连接请求。
socket常见错误代码解析.pdf
Socket Error 10061 - Connection refusedSocket Error 10061是指连接被拒绝,这种错误通常是由于远程主机拒绝连接所致。
Socket-Error中文解释
理解这些错误代码的含义有助于开发者更有效地诊断和解决Socket编程中遇到的问题,确保网络通信的顺利进行。在编写Socket程序时,应充分考虑错误处理,以便在出现这些问题时能适当地恢复或报告错误。
MFC 下错误编号对照表
- **10061** - 强行拒绝连接(sckConnectionRefused):远程主机拒绝了连接请求。
c#检测某个端口是否被占用
); socket.Close(); return true; } catch (SocketException ex) { // 错误代码10061表示远程主机拒绝连接 if (ex.ErrorCode


