WSADATA wsaData;
SOCKET s,ClientSock;
SOCKADDR_IN sockAddr,ClientAddr;
int length;
char buffer[2048]; WSAStartup(0x0101,&wsaData); s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(7710);
sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(s,(struct sockaddr *)&sockAddr,sizeof(sockAddr);
listen(s,8); ClientSock = accept(s,(struct sockaddr *)&ClientAddr,&length);
if (ClientSock == INVALID_SOCKET)
{
Application->MessageBoxA("accept() failed.","系统提示",MB_ICONWARNING);
break;
}
length = recv(s,buffer,2048,0);
buffer[length] = '\0'; closesocket(s);
WSACleanup();为什么总是出现accept失败的错误。
SOCKET s,ClientSock;
SOCKADDR_IN sockAddr,ClientAddr;
int length;
char buffer[2048]; WSAStartup(0x0101,&wsaData); s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(7710);
sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(s,(struct sockaddr *)&sockAddr,sizeof(sockAddr);
listen(s,8); ClientSock = accept(s,(struct sockaddr *)&ClientAddr,&length);
if (ClientSock == INVALID_SOCKET)
{
Application->MessageBoxA("accept() failed.","系统提示",MB_ICONWARNING);
break;
}
length = recv(s,buffer,2048,0);
buffer[length] = '\0'; closesocket(s);
WSACleanup();为什么总是出现accept失败的错误。
解决方案 »
- 请问有gets()函数的替代函数可以超时自动退出吗?
- udp使用重叠IO WSARecvFrom总返回错误WSAENOBUFS
- 请问一个按钮消息处理函数里//异步Connnect()去连接完毕,再次点击按钮会报错是什么原因//怎么处理???
- 求教,现在手上有一个刚上手的MFC应用程序,怎么样转换成Activex最简单
- 类如何拥有外部可以访问的常量字串?
- 想写一个windows服务程序请问有相关的例子吗?还有windows服务中怎么不能使用MFC呢?
- 关于dxf格式图形问题
- 能不能解释一下什么是窗口坐标系,视口坐标系,逻辑坐标系,设备坐标系,他们之间有什么联系?
- 一个软件保护方案!!
- 用VS2010.。里MFC编程基于对话框动态绘图的问题?
- 请问VC开发的程序,有什么插件可以让界面变得漂亮一些。
- 关于Invalidate (false)
WINSOCK版本必须为2.2,
WSAStartup(0x0101,&wsaData); s = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);改为
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
printf("\nWSAStartup() failed:%d",GetLastError());
__leave;
}
s=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if(s==INVALID_SOCKET)
{
printf("\nsocket() failed:%d",GetLastError());
__leave;
}
ClientSock = accept(s,(struct sockaddr *)&ClientAddr,&length);
而且你的程序不检查bind,listen的返回值,这种错误只有初学者可以原谅
ClientSock = accept(s,(struct sockaddr *)&ClientAddr,&length);