关于绑定bind()的问题

hanzp 2003-03-18 03:58:20
小弟最近刚学网络编程,我看参考书上说服务器端在创建了监听套接字后应该对它绑定地址,但我在没有bind() 的情况下为什么能够正常运行,我用我编的程序发文件,发10M的文件都没有出错,bind()到底有什么用呢?
...全文
42 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeRen 2003-03-21
  • 打赏
  • 举报
回复
GetPeerName得到的是对方主机的地址和端口。
GetSockName才能得到本地主机的地址和端口。
hanzp 2003-03-20
  • 打赏
  • 举报
回复
还有一个问题,我用myClientSocket->Connect( strServerName, nServerPort )连接成功后,使用myClientSocket->GetPeerName( strLocalIP, nLocalPort ),为什么会有nLocalPort和nServerPort相同呢
JoeRen 2003-03-20
  • 打赏
  • 举报
回复
客户端既可以绑定也可以不绑定。当你需要从指定的端口发包时,就需要绑定了。不绑定的话,connect函数内部认为是使用了全0IP地址和端口0绑定了。
我不知道MFC的CSocket构造函数在没有指定端口和地址时有没有绑定。但如果指定了,那么一定是绑定了的。
hanzp 2003-03-20
  • 打赏
  • 举报
回复
-> JoeRen(地球发动机) 我用的是CSOKCET类,多谢指点,但这样的话,客户端不是也绑定了吗?不是说客户端不需要绑定的吗?
wzswgbx 2003-03-19
  • 打赏
  • 举报
回复
大哥,一台机不可以有几张网卡吗?有几张网卡不就有几个IP,你不指定IP,哪块网卡用作通讯啊?
rtdb 2003-03-19
  • 打赏
  • 举报
回复
> 一个机子可以由多个ip吗?

当然了, 一个机子可有多个网卡, 一个网卡可有多个IP。

JoeRen 2003-03-19
  • 打赏
  • 举报
回复
不管怎么样,TCP监听套接字不绑定肯定是不行的。就算IP地址系统可以帮你搞定,但是端口呢?总要指定吧?
我估计楼主用的是CSocket类,这个东西在使用带有地址和端口的构造函数的时候,内部帮你调用了bind,这时候你要调用bind反而可能出错。
zhuitong 2003-03-19
  • 打赏
  • 举报
回复
是啊,我的机子也不怎么好,不bind()也可以正常运行,一个机子可以由多个ip吗?
绑定到底是为了什么?能不能举个例子说说,多谢!
yue621 2003-03-18
  • 打赏
  • 举报
回复
牛,我的机器没那么好,不bind()就出错!!
rtdb 2003-03-18
  • 打赏
  • 举报
回复
不知是你历害还你的系统历害。
我想你的机器上只有一个IP, 又是客户端, 可能系统帮你绑定了。

当你有多个IP时, 就要绑定了。
hujun614 2003-03-18
  • 打赏
  • 举报
回复
当然有用,也可以不用,
不用能够进行网络操作,
用了也可以,且更能符合你的特殊需要,如bind到你所有地址中的一个地址。这样不会影响其它地址。

18,356

社区成员

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

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