基本WinSock编程问题

xuxinjun 2004-06-26 12:16:20
在《Windows网络编程》第一章TCP/IP服务器程序中,有如下代码:

#include <winsock2.h>

void main(void)
{
WSADATA wsaData;
SOCKET ListeningSocket,NewConnection;
SOCKADDR_IN ServerAddr,ClientAddr;
int Port=5150;

WSAStartup(MAKEWORD(2,2),&wsaData);

ListeningSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=htonl(INADDR_ANY);

bind(ListeningSocket,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr));

listen(ListeningSocket,5);

int ClientAddrLen;
NewConnection=accept(ListeningSocket,(SOCKADDR*)&ClientAddr,&ClientAddrLen);

closesocket(NewConnection);
closesocket(ListeningSocket);

WSACleanup();

}
按说如无客户机连接请求时,程序运行到accept()时应该被阻塞,然而我在调试时,程序却并不阻塞,而是直接往下运行,并在运行到main()函数尾部时弹出对话框提示“please enter the path for CRTO.C”,请问这是怎么回事?
...全文
95 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
PiggyXP 2004-06-26
  • 打赏
  • 举报
回复
你在每个可能出错的地方都加上错误处理试试看,看错在哪里了,比如bind

nRet=bind(ListeningSocket,(LPSOCKADDR)&ServerAddr,sizeof(ServerAddr));
if(nRet==SOCKET_ERROR)
{
AfxMessageBox("Bind Socket Fail!");
closesocket(ListeningSocket);
return ;
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧