Socket编程,C语言版!

本文详细介绍了C语言中Socket编程的send和recv函数,包括它们的功能、参数解析及执行流程。send函数用于向TCP连接的另一端发送数据,recv函数则用于接收数据。在同步Socket中,send会等待协议发送数据,而recv会等待数据接收完成。文章还提醒了send和recv在处理错误及网络中断情况下的返回值。快来加入编程学习基地,一起提升编程技能吧!
摘要由CSDN通过智能技术生成

socket编程——send函数&recv函数详解

一、send函数

✍ 函数原型:

        int send( SOCKET s,char *buf,int len,int flags );

✍ 功能:

        不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。

        参数一:指定发送端套接字描述符;

        参数二:存放应用程序要发送数据的缓冲区;

        参数三:实际要发送的数据的字节数;

        参数四:一般置为0。

        同步Socket的send函数的执行流程,当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲的长度(因为待发送数据是要copy到套接字s的发送缓冲区的,注意并不是send把s的发送缓冲中的数据传到连接的另一端的,而是协议传的,send仅仅是把buf中的数据copy到s的发送缓冲区的剩余空间里):

    ▶ 如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据,如果是就等待协议把数据发送完,如果协议还没有开始发送s的发送缓冲中的数据或者s的发送缓冲中没有数据,那么 send就比较s的发送缓冲区的剩余空间和len

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值