发送数据和接收数据
分为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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现