奇怪问题
遇到一个奇怪的问题,我现在有两个全局的SOCKET,
初始化:
WSADATA wsaData;
WORD version = MAKEWORD(2,0);
int ret = WSAStartup(version,&wsaData);
if(ret!=0)
{
AfxMessageBox("Fail to initialize socket",MB_OK|MB_ICONERROR);
}
g_Galobalsock=socket(AF_INET,SOCK_STREAM,0);
g_Warnsock=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in server;
server.sin_family=AF_INET;
server.sin_addr.S_un.S_addr= inet_addr(dlg.m_ip);
server.sin_port=htons((unsigned short)dlg.m_port);
port = dlg.m_port;
ip = dlg.m_ip;
if((connect(g_Galobalsock,(struct sockaddr* )&server,sizeof(sockaddr_in))!=0)||(connect(g_Warnsock,(struct sockaddr* )&server,sizeof(sockaddr_in))!=0))
{
AfxMessageBox("连接失败",MB_OK|MB_ICONERROR);
inet=false;
}
else
{
AfxMessageBox("连接正常",MB_OK|MB_ICONASTERISK);
int timeout=15000;
if((SOCKET_ERROR==setsockopt(g_Galobalsock,SOL_SOCKET,SO_RCVTIMEO,(const char*)&timeout,sizeof(timeout)))||(SOCKET_ERROR==setsockopt(g_Warnsock,SOL_SOCKET,SO_RCVTIMEO,(const char*)&timeout,sizeof(timeout))))
AfxMessageBox("设置接收超时失败",MB_OK|MB_ICONWARNING);
}
现在问题是在DUBUG版本下面这两个套接字都能够正常发送和接收数据.
但是release版本下面g_Galobalsock不能够正常发送和接受数据,g_Warnsock这个套接字在子线程中可以正常接收到数据.
if(send(g_Galobalsock,(const char*)pdata,length,0)==length);
这里正确执行下去了,可是我的服务端确没有收到数据.
想请问高手问题出在哪里!!!!
万分感谢!