源代码如下:
int iSize = 0;
SOCKET Client;
SOCKADDR_IN ClientAddr;
memset(&ClientAddr,0,sizeof(SOCKADDR_IN));
//创建SOCKET
m_ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (m_ListenSocket==INVALID_SOCKET)
{
LogInfo("创建监听SOCKET失败!");
return -1;
}
else{
LogInfo("创建监听SOCKET成功!");
} SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSock.sin_family = AF_INET;
addrSock.sin_port = htons(9110);
if(SOCKET_ERROR==bind(m_ListenSocket, (SOCKADDR*)&addrSock, sizeof(SOCKADDR)))
{
LogInfo("监听端口绑定失败!");
return -1;
} /*unsigned long cmd = 1;
int nStatus=ioctlsocket(m_ListenSocket, FIONBIO, &cmd);*/ // 相关初始化处理, 创建监听套接字
listen(m_ListenSocket, 5); while(1)
{
//下面这一句出错
Client = accept(m_ListenSocket, (SOCKADDR*)&ClientAddr, &iSize);
//Client = accept(m_ListenSocket, NULL, NULL); //换成这一句就不出错
if(Client == INVALID_SOCKET)
{
int r = WSAGetLastError();
return -1;
} CreateThread(NULL, NULL, Thread_RecvData, (LPVOID)Client, 0, NULL);
}
int iSize = 0;
SOCKET Client;
SOCKADDR_IN ClientAddr;
memset(&ClientAddr,0,sizeof(SOCKADDR_IN));
//创建SOCKET
m_ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (m_ListenSocket==INVALID_SOCKET)
{
LogInfo("创建监听SOCKET失败!");
return -1;
}
else{
LogInfo("创建监听SOCKET成功!");
} SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSock.sin_family = AF_INET;
addrSock.sin_port = htons(9110);
if(SOCKET_ERROR==bind(m_ListenSocket, (SOCKADDR*)&addrSock, sizeof(SOCKADDR)))
{
LogInfo("监听端口绑定失败!");
return -1;
} /*unsigned long cmd = 1;
int nStatus=ioctlsocket(m_ListenSocket, FIONBIO, &cmd);*/ // 相关初始化处理, 创建监听套接字
listen(m_ListenSocket, 5); while(1)
{
//下面这一句出错
Client = accept(m_ListenSocket, (SOCKADDR*)&ClientAddr, &iSize);
//Client = accept(m_ListenSocket, NULL, NULL); //换成这一句就不出错
if(Client == INVALID_SOCKET)
{
int r = WSAGetLastError();
return -1;
} CreateThread(NULL, NULL, Thread_RecvData, (LPVOID)Client, 0, NULL);
}
解决方案 »
- VC2008 sp1中CTabView类的使用问题
- 哪位大大帮帮小弟啊!!.搞了一个晚上都没搞定
- 请问一个打印分行和分列的问题?/谢谢各位了
- 从字符串中提取数据的问题
- 编译通过了,但运行的时候一点修改窗口的确定就出错,为什么?
- pc上的管理软件如何与数据采集器进行连接?
- 类设计的问题
- 请问如何知道UDP传输过来的数据内容没有在传输过程中出错,还是系统进行校验
- MSDN宇宙版目录,看看微软都做了什么!
- 求教:关于应用程序图标显示的问题?
- 为什么Mutex不能被正常释放?????????????????????????????????
- 为什么我重载一个CSOCKET类的onreceive,在里面加了一个AsyncSelect(FD_WRITE),然后就只能接收一次,再也收不下来了?在线等,马上结。
iSize = sizeof(struct sockaddr_in);
就ok了,刚才没注意。