Linux编程网络之TCP通信

       TCP通信会用到很多API函数,还有许多杂的知识点。

       我们知道,TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该链接分配必要的内和资源,以管理连接的状态和连接上数据的传输。TCP连接是全双工的,完成数据交换后,通信双方必须断开连接以释放系统资源。

      TCP连接是一对一的,可靠的流式服务,这种服务方式体现在:当发送端应用程序连续执行多次写操作时,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。即TCP模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。

     在这里顺便提一句,UDP协议则是不可靠的数据报服务。UDP模块就将其封装成一个UDP数据报并发送之。接收端必须及时针对每一个UDP数据报执行读操作,否则就会丢包。如果用户没有指定足够的应用程序缓冲区来读取UDP数据,则UDP数据将被截断。

      下图为TCP字节流服务和UDP数据报服务的区别(省略传输层以下细节):



              下面我将TCP通信的服务器、客户端大概所用函数API顺序展现如下:

                                                         

          下面是程序实例:其中涉及到部分API会在代码后方加以说明。

  一、服务器端程序:ser.c


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值