如何在linux中同步套接字服务器和客户端之间的通信速率

时间:2014-02-20 12:19:39

标签: linux sockets tcp network-programming ipc

我目前正在从事Linux网络编程,我是新手。我正在Linux网络编程(C语言)中开发一些基于 Stream Socket(TCP)的客户端 - 服务器应用程序。

服务器 - 会不断发送数据 客户端 - 将持续接收数据 (两者都在while(1)循环中运行)

  • 如果 Server.c 在system-A上运行且正在运行client.c 系统-B。服务器正在发送一些 100包/秒。但由于某些原因 网络问题客户端能够接收 10个数据包/秒 即;制片人的产能超过接收器。

  • 有丢包吗?或者所有数据包都将作为TCP连接传输(可靠)?

  • 如果有任何数据包丢失,如何启用重传?
  • 任何标志或选项
  • 是否有任何机制或程序来处理生产者 - 消费者问题?
  • Send()和recv()函数的工作原理是什么? (任何封锁类型都存在)

需要一些帮助! 请。

感谢你们所有人

1 个答案:

答案 0 :(得分:1)

TCP具有内置流量控制功能。您无需在应用程序级别进行任何特殊安排。如果发送方始终tx的数据多于接收方可以吃的数据,则TCP堆栈将减小窗口大小以降低传输速率。结果是send()调用阻塞的时间更长。