首页 > 其他 > 详细

发送数据和接收数据

时间:2021-06-17 12:05:27      阅读:11      评论:0      收藏:0      [点我收藏+]

分为LINUX和WINDOWS两种平台

LINUX:write()&read()

Linux 不区分普通文件和套接字。

在服务器端用 write() 向套接字写入数据,客户端就能收到,然后再使用 read() 从套接字中读取出来,就完成了一次通信。

ssize_t write(int fd, const void *buf, size_t nbytes);
ssize_t read(int fd, void *buf, size_t nbytes);

参数解释:

1、fd 为要读取的文件的描述符,buf 为要发送/接收数据的缓冲区地址,nbytes 为要写入/读取的数据的字节数。成功则返回读取到的字节数(read()遇到文件结尾则返回0),失败则返回 -1。

2、size_t 是通过 typedef 声明的 unsigned int 类型;ssize_t 在 "size_t" 前面加了一个"s",代表 signed,即 ssize_t 是通过 typedef 声明的 signed int 类型。

WINDOWS:send()&recv()

Windows 区分普通文件和套接字,并定义了专门的接收和发送的函数。

从服务器端发送数据使用 send() 函数,客户端就能收到,然后再使用 recv() 从套接字中读取出来,就完成了一次通信。

int send(SOCKET sock, const char *buf, int len, int flags);
int recv(SOCKET sock, char *buf, int len, int flags);

参数解释:

1、sock 为要发送/接收数据的套接字,buf 为要发送/接收的数据的缓冲区地址,len 为要发送/接收的数据的字节数,flags 为发送数据时的选项,设置为0即可。

参考链接:https://blog.csdn.net/baidu_15547923/article/details/90206381

发送数据和接收数据

原文:https://www.cnblogs.com/leo-lai/p/14892234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!