关于多块网卡的机器指定网卡发送数据是的一个问题

小猫钓鱼045B 2013-05-27 08:52:50
请教大虾们一个问题,我的机器有两块网卡,一块用来收数据一块用来发数据,分工明确。在接收数据之前,我初始化一个socket A,bind()这个socket A到指定的收数据网卡,然后listen这个socket A,再调用accept()成功返回一个socket B,我想问一下socket B在接收accept()函数返回值之前是否需要bind()到指定接收数据的网卡(后面用socket B来接收数据)? 多谢了!
...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小猫钓鱼045B 2013-05-28
  • 打赏
  • 举报
回复
引用 1 楼 FRcheng 的回复:
我感觉你bind哪个网卡,以后的收发数据都是那个网卡了
是啊,把socket绑定到指定的网卡,它就通过那块网卡收发数据。
小猫钓鱼045B 2013-05-28
  • 打赏
  • 举报
回复
引用 3 楼 w654637923 的回复:
不需要,accept()返回已经建立连接的套接字,就是说它描述的内存数据结构中源地址和目的地址已经确定。打个比方,一栋大楼有很多信箱,你住进去的时候,会给你分配一个信箱,这个信箱就是你接受和发送信封的接口,你收到一封信后,说明你已经打开这个信箱,那么这个时候,你还需要打开另外一个信箱来回一封信么?你要做的,是写一封信,然后放到你收信的那个信箱里去。socket()就是你向管理员要一个信箱,bind()就是给你分配了一个具体的信箱。邮递员第一次将你的信放进你的信箱就说明你accept()成功。
谢谢了~
w654637923 2013-05-28
  • 打赏
  • 举报
回复
不需要,accept()返回已经建立连接的套接字,就是说它描述的内存数据结构中源地址和目的地址已经确定。打个比方,一栋大楼有很多信箱,你住进去的时候,会给你分配一个信箱,这个信箱就是你接受和发送信封的接口,你收到一封信后,说明你已经打开这个信箱,那么这个时候,你还需要打开另外一个信箱来回一封信么?你要做的,是写一封信,然后放到你收信的那个信箱里去。socket()就是你向管理员要一个信箱,bind()就是给你分配了一个具体的信箱。邮递员第一次将你的信放进你的信箱就说明你accept()成功。
看着捉急 2013-05-27
  • 打赏
  • 举报
回复
我感觉你bind哪个网卡,以后的收发数据都是那个网卡了

18,356

社区成员

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

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