为什么在本机上测试启动两个聊天程序会出现socket“绑定失败”呢??

gxl123 2006-09-26 10:29:03
retval=bind(m_sock,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_sock);
MessageBox("绑定失败");
return FALSE;
}

在本地机上启动一个时,不会出错,但启动第二个就会报“绑定失败“(此程序集合了客户端服务器端)
查了msdn,怀疑是不是原端口号被占用了的缘故呀??
但我记得当我头一次运行这个程序时,是可以开多个的,
不解???
大家帮我看看!!
...全文
289 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
rickerliang 2006-09-28
  • 打赏
  • 举报
回复
客户还bind个啥啊,你connect到服务器上就行了
sdf123321 2006-09-27
  • 打赏
  • 举报
回复
服务器端要bind,客户端就不要bind了
dadi0189 2006-09-27
  • 打赏
  • 举报
回复
客户就不要bind了
xiaoyun517898 2006-09-27
  • 打赏
  • 举报
回复
记得这个程序在孙鑫老师的vc教程里面用过,我也试了一下,确实存在同样的问题, 其实这个问题可以通过再添加一个“服务端 /客户端”选项完成,当服务端为TRUE时就调用绑定函数,这样就可以同时运行两个程序了。
gxl123 2006-09-26
  • 打赏
  • 举报
回复
如果服务器自动分配到后端口,那客房端怎么知道发送到哪个端口呢??
gxl123 2006-09-26
  • 打赏
  • 举报
回复
mynamelj(隐姓埋名,从此绝迹在互联网之上)
我把端口改为0后,确实可以启动两个实例了,但却无法输出了,
这是怎么回事,还需什么设置吗
f_acme 2006-09-26
  • 打赏
  • 举报
回复
服务器不能用0吧,mynamelj(隐姓埋名,从此绝迹在互联网之上)说的是指的客户端用端口0。
mynamelj 2006-09-26
  • 打赏
  • 举报
回复
端口不能同时被两个实例占用.你可以把分配的端口改为0这样系统会自动为你分配端口.
gxl123 2006-09-26
  • 打赏
  • 举报
回复
端口改为0后,自动分配端口后,怎么通信,

不解?
还请高人指点一下!!
aa3000 2006-09-26
  • 打赏
  • 举报
回复
过来接分。
zxq80 2006-09-26
  • 打赏
  • 举报
回复
服务器端应该绑定一个ip地址, 客户端不用绑定
gxl123 2006-09-26
  • 打赏
  • 举报
回复
我也觉得应该是这样的,
难道真是我记错了,哈哈,居然记得自己开过两个,还都设127.0.0.1相互聊过,真是晕
草鞋工 2006-09-26
  • 打赏
  • 举报
回复
你启动第一个的时候端口已经使用了,第2个启动的时候就不能再使用同样的端口了

18,356

社区成员

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

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