【关于】套接字的进程间通讯

god_fish 2012-06-29 09:52:53
RT,用TCP套接字做进程间通讯,本地IP地址是192.168.1.1。

服务端S1绑定127.0.0.1,服务端S2绑定192.168.1.1。

本地客户端C连接他们,请问C-S1和C-S2的数据交换是在同一层的吗?
...全文
181 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2012-07-11
  • 打赏
  • 举报
回复
最后都走loopback。
god_fish 2012-07-11
  • 打赏
  • 举报
回复
只是在本机上当作进程间通信,,和数据交换是不是在协议栈的同一层有关系吗?
=====================================================================
假如C-S1和C-S2不在同一层数据交换,那么通信效率多少会有不同。
fdl19881 2012-06-30
  • 打赏
  • 举报
回复
C和S都在一台机器上吧
是吧。
C->S1和C->S2 都使用同一个lo接口通信了。数据都不过到IP层以下。在IP层时,检测到目的地址是127.0.0.1直接送到目的socket的接收缓冲中,否则又会检测是否是本机IP,是的话,然后再直接送到目的socket的接收缓冲中。如果目的IP不是本机IP且不是127.0.0.1,才会向下层数据链数层传送处理。
也就是说本机间的通信是在tcp层时,就直接送到各自目的socket的接收缓冲了。

bind的哪个IP,则connect的目的IP和端口得对应IP
否则就 bind通配地址0.0.0.0

只是在本机上当作进程间通信,,和数据交换是不是在协议栈的同一层有关系吗?
skyWalker_ONLY 2012-06-30
  • 打赏
  • 举报
回复
是在同一层
Gloveing 2012-06-30
  • 打赏
  • 举报
回复
实际上都是使用环回地址,数据包没到达数据链路层以下
冻结 2012-06-30
  • 打赏
  • 举报
回复
是同一层,TCP,UDP 协议的那一层。
god_fish 2012-06-29
  • 打赏
  • 举报
回复
请问C-S1和C-S2的数据交换是在协议栈的同一层吗?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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