C++ Socket有关问题
C++ Socket问题
为什么我connect的返回值始终是-1,
------解决思路----------------------
1.在socket()函数之前调用WSAStartup没?
2.确认本机的6000端口有服务,并且确认下服务是tcp,而不是udp。
3.使用netstat命令查看本机端口使用情况,以及服务是tcp还是udp
------解决思路----------------------
------解决思路----------------------
getlasterror() 看一下错误码,可以帮助定位问题。
应该是你本机没有在6000端口上侦听客户链接。
------解决思路----------------------
如果你已经成功的WSAStartup过, 那么你的代码没问题.
你需要确定你是否已经有个本地服务端在监听6000端口, 如果没有就开一个. 例如用TCP调试工具.
int n_connect;
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
n_connect=connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
if(n_connect>=0)
{
_stprintf(m_strMsgLog, L">>Read>>Connect Success !");
//WritetoConsoleWithMode(m_strMsgLog,0,m_nRunMode);
WritetoLogFile(m_strLogPath,m_strExeName,m_strMsgLog);
//break; //if(n_connect>0) break;
}
if(n_connect<0)
{
_stprintf(m_strMsgLog, L">>Read>>Do_Connect -- connect site ip=%s failure !", 0);
//WritetoConsoleWithMode(m_strMsgLog,2,m_nRunMode);
WritetoLogFile(m_strLogPath,m_strSvcName,m_strMsgLog);
/*return SOCKET_ERROR;*/ //return INVALID_SOCKET;
}
closesocket(sockClient);
WSACleanup();
为什么我connect的返回值始终是-1,
------解决思路----------------------
1.在socket()函数之前调用WSAStartup没?
2.确认本机的6000端口有服务,并且确认下服务是tcp,而不是udp。
3.使用netstat命令查看本机端口使用情况,以及服务是tcp还是udp
------解决思路----------------------
// 也许:
n_connect=connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
// 应该是:
n_connect=connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR_IN));
------解决思路----------------------
getlasterror() 看一下错误码,可以帮助定位问题。
应该是你本机没有在6000端口上侦听客户链接。
------解决思路----------------------
如果你已经成功的WSAStartup过, 那么你的代码没问题.
你需要确定你是否已经有个本地服务端在监听6000端口, 如果没有就开一个. 例如用TCP调试工具.