


失败-1,错误码
参数类型很多,man查看
![]()

由于s_addr需要一个32位的数,使用下面函数将点分十进制字符串ip地址以网络字节序转换成32字节数值

![]()
同理端口号也有一个转换函数

我们的端口号位两个字节16位,所以使用第二个htons函数
完整示例



监听有没有客户端发起连接请求


从连接请求的队列里面获取这些请求,然后与对应的客户端,完成连接的建立,返回一个已经完成连接的socket的fd

获取ip地址及端口号


返回点分十进制ip地址
![]()
端口号
![]()
以下示例获取客户端ip及端口号


由于我们输入的ip以及端口号是一个字符串,但我们需要一个整形端口号,再在sock里转换成一个·32位数,所以要用atoi函数将字符串端口号转换成整形。
对比一下


port<==>"5000",ip都是字符串

![]()


缓冲区没刷新,应该分开的数据一起打包发送

解决
1.手动价格分隔符,在接收端辨别
2.指定每次传输长度
3.用结构体



flags为MSG_DONTWAIT时执行非阻塞操作

同recv接近