我的 c/s 程序在局域网测试一切正常,但到了互联网,客户端无法与服务器建立连接,帮我看看啊

tzsak 2003-08-21 03:15:12
已知服务器有真实网上IP


======================================================================
服务端连接:

m_Serv.sin_addr.s_addr=htonl(INADDR_ANY);
m_Serv.sin_family=AF_INET;
m_Serv.sin_port=5000;
m_AddLen=sizeof(m_Serv);
//创建Socket
m_Sock=socket(AF_INET,SOCK_STREAM,0);
//绑定
if (bind(m_Sock,(sockaddr*)&m_Serv,m_AddLen))
{
m_strOutput=_T("绑定错误");
}
else
{
m_strOutput=_T("服务器准备就绪");
//开始侦听
listen(m_Sock,5);
//启动线程
AfxBeginThread(&thread,0);
}

======================================================================
客户端连接:

m_Cli.sin_addr.s_addr=inet_addr(m_strIP); //m_strIP为服务端IP
m_Cli.sin_family=AF_INET;
m_Cli.sin_port=5000;

m_Sock=socket(AF_INET,SOCK_STREAM,0);
m_ctlOutput.SetWindowText(_T("正在连接服务器"));

if (connect(dlg->m_Sock,(sockaddr*)&(dlg->m_Cli),sizeof(dlg->m_Cli))==0)
{
dlg->m_ctlOutput.SetWindowText(_T("连接成功"));
}
else
{
dlg->m_ctlOutput.SetWindowText(_T("连接失败"));
return 0;
}
AfxBeginThread(thread,0);
...全文
71 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzsak 2003-08-22
  • 打赏
  • 举报
回复
解决了,把端口改为8000起上
mme 2003-08-21
  • 打赏
  • 举报
回复
因为你的程序不能穿透局域网....不信可以试试,在局域网外面连接,肯定是行的.
bager 2003-08-21
  • 打赏
  • 举报
回复
端口被封掉了。
mct1025 2003-08-21
  • 打赏
  • 举报
回复
你在内网,使用代理服务器,不能直接连接socket

需要写一个socket代理
或者使用socket代理工具
tzsak 2003-08-21
  • 打赏
  • 举报
回复
服务端是拨号上网
客户端是代理上网
没有安装任何防火墙
dood 2003-08-21
  • 打赏
  • 举报
回复
是不是在服务器上有多个IP
AaronChan 2003-08-21
  • 打赏
  • 举报
回复
楼主忘了accept,不过我想程序中还是有!呵呵!
mct1025 2003-08-21
  • 打赏
  • 举报
回复
是不是在内网,有代理服务器?

服务器端口是否正常打开?
bluestar 2003-08-21
  • 打赏
  • 举报
回复
5000端口是不是已经被占用了?或者防火墙不允许这个端口监听?
akun 2003-08-21
  • 打赏
  • 举报
回复
端口,防火墙?

18,356

社区成员

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

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