WSADATA wsadata;
SOCKET server;
SOCKET client;
SOCKADDR_IN serveraddr;
void CServerDlg::OnOK()
{
// TODO: Add extra validation here
server = socket(AF_INET,SOCK_STREAM,0);
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(12345);
serveraddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); bind(server,(SOCKADDR*)&serveraddr,sizeof(serveraddr));
listen(server,10);
while(true)
{
client=accept(server,0,0); }
}
怎么解决
解决方案 »
- udt谁能提供一些资料啊!
- Windows桌面切换的时候,比如用户桌面(Default)切换到winlogon桌面/屏保桌面时有什么消息或事件通知吗?
- 关于Visual Assistant的一个问题
- #pragma宏指令
- 在视图中打印图形时为什么实线会像虚线
- 动态修改程序
- 菜鸟问题:怎样在VC用GroupBox中实现如VB的Frame容器功能?
- ******加分帖子******------(明天解不解决都结贴!!!!!!!!!)
- 如何控制打印输出使输出大小与屏幕显示相同?(急,在线等待 Y&&Y )
- 各位大虾,我有个关于WinMain的问题
- vc查看局域网共享问题
- [急切求助]如何安装WindowsService服务?
{
client=accept(server,0,0);
}
就不会卡死了~
你可以新建一个线程,去接收连接,这样主进程就不会阻塞在那里了。
把你OnOK()中那段循环改成AfxBeginThread(Accept_Thread,this);/启动线程
UINT Accept_Thread(LPVOID lParam)
{
CXXDilog *dlg=(CXXDialog*)lParam;
while(true)
{
dlg->client=accept(dlg->server,0,0);
}
}
楼主可满意