CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

用CAsyncSocket作的服务器端程序,第一次连接成功后,如果再次连接成功间隔时间很长?

楼主smalldragon()2004-08-03 16:51:36 在 VC/MFC / 网络编程 提问

在listen成功后,调用accept接受连接,连接成功,发送接收数据。如果客户端关闭winsock,那么调用close关闭,对于监听(listen)是循环调用的,但是accept以后要间隔很长时间才能连接成功,不知道什么原因。我的代码很乱,将就看吧!  
  SOCKET   *h_Socket=(SOCKET*)pParam;  
  theApp.m_AppLayer.m_ServerSock.Attach(*h_Socket);  
   
  while(WaitForSingleObject(COMM_EVENT.m_hObject,100)==WAIT_TIMEOUT)  
  {  
  if   (theApp.m_AppLayer.m_ServerSock.Listen(5))  
  {  
          while   (WaitForSingleObject(COMM_EVENT.m_hObject,100)==WAIT_TIMEOUT)  
        {  
  if   (theApp.m_AppLayer.m_ServerSock.Accept(theApp.m_AppLayer.m_MySocket))   break;  
  };  
  theApp.m_AppLayer.m_MySocket.AsyncSelect();  
  if   (WaitForSingleObject(COMM_EVENT.m_hObject,100)==WAIT_OBJECT_0)  
  break;  
  CString   ClientName;  
  UINT   Port;  
  char   Info[400];  
  theApp.m_AppLayer.m_MySocket.GetPeerName(ClientName,Port);  
  sprintf(Info,"连接%s成功",ClientName);  
  ((CClientDlg   *)theApp.m_pMainWnd)->ShowInfo(Info);  
  while   (WaitForSingleObject(COMM_EVENT.m_hObject,100)==WAIT_TIMEOUT)  
  {  
  char   Rec[100];  
  int   RecLen=0;  
  if   ((RecLen=theApp.m_AppLayer.m_MySocket.Receive(Rec,100))>0)  
  {  
  theApp.m_AppLayer.m_MySocket.Send("OK",3);  
  Sleep(100);  
  }  
  else   if   (RecLen==0)  
  {  
  while(theApp.m_AppLayer.m_MySocket.m_hSocket!=INVALID_SOCKET)  
  {  
  theApp.m_AppLayer.m_MySocket.Close();  
  // theApp.m_AppLayer.m_ServerSock.Close();  
  Sleep(100);  
  };  
  Sleep(2000);  
  while   (!theApp.m_AppLayer.m_ServerSock.Create(4000))  
  {  
  break;  
  }  
  break;  
  }  
  }  
   
  } 问题点数:0、回复次数:1Top

1 楼xdljf(hunter)回复于 2004-08-04 10:57:01 得分 0

CAsyncSocket的速度比winsock的api慢很多倍,可以用winsock函数试一下Top

相关问题

  • CAsyncSocket的对象如何用send函数发一个回车给对方的服务器(已连接成功的)????
  • CAsyncSocket 一服务器对多客户端
  • 注册成功的用户名不能登录服务器
  • WinXP的IIS服务器配置问题?谁成功配置过winXP的iis服务器,帮帮我!!
  • 客户端服务器编程的一个问题,如何确定服务器之间是否转发成功
  • 在pws上调试成功,在服务器上却查不到数据
  • 有成功应用过Adaptive ServerAnywhere 作服务器的大虾请进!
  • sql sever2000安装问题:安装数据库服务器不成功
  • 怎么判断远程数据库服务器链接成功否?
  • 订阅成功后订阅服务器怎么没有出现相应的表

关键词

  • 连接
  • socket
  • applayer
  • theapp
  • mysocket
  • hobject
  • 连接成功
  • reclen
  • serversock
  • 调用

得分解答快速导航

  • 帖主:smalldragon

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo