求救!~!~!服务器端开始侦听之后,为什么有时候客户端老是会出现连接失败????/??

cxn0808 2003-05-12 12:42:51
吾写的这个基于Socket的聊天程序还是有一点问题如下,望赐教:
就是服务器端开始侦听之后,客户端本来通过IP连接应该没问题的,
为什么有时候老是会出现连接失败,而且这种情况出现的几率还比较大
这是为什么呢,是网络问题还是别的什么??
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxn0808 2003-06-20
  • 打赏
  • 举报
回复
up
cxn0808 2003-05-31
  • 打赏
  • 举报
回复
m_recv这也是与侦听连接相异的socket啊
这与上面有什么区别吗??
sdf123321 2003-05-30
  • 打赏
  • 举报
回复
CTcpSocket* pSocket=new CTcpSocket(this);
if(m_pListen->Accept(*pSocket))
{
m_lstConnectionList.AddTail(pSocket);
CString strWork="有连接进来!";
mstr.AddTail(strWork);
Invalidate();
}
else
{
delete pSocket;
pSocket=NULL;
}
sdf123321 2003-05-30
  • 打赏
  • 举报
回复
另一个用于连接Socket应该new一个新的Socket进行接受连接.
cxn0808 2003-05-30
  • 打赏
  • 举报
回复
以下是两个函数:侦听和连接处理函数:
我觉得应该是侦听函数在简单了,但不知道本质问题出在什么地方,望指教!
void CSockDlg::OnListen()
{
// TODO: Add your control notification handler code here
m_server.Create(1000);
m_server.Listen();
}
void CSockDlg::ShowAccept()
{
m_server.Accept(m_recv);
m_serfile.open("Server.txt",ios::out|ios::ate);
m_listen.EnableWindow(FALSE);
m_connect.EnableWindow(FALSE);
m_ipctrl.EnableWindow(FALSE);
m_send.EnableWindow(TRUE);
AfxMessageBox("server端连接成功!");
m_serflag=TRUE;
}
ifromheaven 2003-05-28
  • 打赏
  • 举报
回复
你连接的时候是不是没有新开一个Socket用来接受连接,而是直接用侦听的那个Socket连接了。那样你在重复连接的时候会因为已经没有侦听的Socket而出现连接错误。
ymtan5617 2003-05-28
  • 打赏
  • 举报
回复
说的太简单,找不到错误,但肯定是程序有问题,贴代码上来看看吧
cxn0808 2003-05-28
  • 打赏
  • 举报
回复
不是啊服务端有一个Socket用于侦听,然后用另一个Socket用于连接
是不是没有做链表会出现这样的情况?
比如说客户端和服务端同时开程序,服务端侦听,如果此时客户端连接的话可能成功的机率较大
但是如果客户端关掉程序重新开启再连接就很可能不行了.
还有就是客户端和服务端本来已经连接好的,但放那一段时间不动它的话就连不上了,断了!
连接为什么这么不稳定??

18,356

社区成员

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

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