免费的seo网站下载,今天中美关系最新消息,怎么看网站开发者页面,清理wordpress模板并发服务器
1.TCP多进程并发服务器
服务器端#xff1a; 客户端#xff1a; 2.TCP多线程服务器
服务器端#xff1a; 客户机端#xff1a; 需要学习的函数还有
1. send() 函数
send() 函数用于在套接字上发送数据。它是网络编程中发送数据到对端的主要函数之一。
函数…并发服务器
1.TCP多进程并发服务器
服务器端 客户端 2.TCP多线程服务器
服务器端 客户机端 需要学习的函数还有
1. send() 函数
send() 函数用于在套接字上发送数据。它是网络编程中发送数据到对端的主要函数之一。
函数原型
#include sys/socket.h
ssize_t send(int sockfd, const void *buf, size_t len, int flags);
sockfd套接字文件描述符是通过socket()函数创建的。buf指向要发送数据的缓冲区的指针发送缓冲区的首地址。len要发送的数据的字节数。flags调用send()时的选项标志通常设置为0作用和write相同。其中MSG_DONTWAIT非阻塞。MSG_OOB用于TCP类型的带外数据out of band通常用于终中断的操作
返回值成功时返回发送的字节数可能小于请求发送的字节数出错时返回-1并设置errno。
2. recv() 函数
recv() 函数用于从套接字接收数据。它是网络编程中接收对端发送数据的主要函数之一。
函数原型
#include sys/socket.h
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
sockfd套接字文件描述符。buf指向接收数据的缓冲区的指针。len缓冲区的大小即最多可以接收的字节数。flags调用recv()时的选项标志通常设置为0。
返回值成功时返回接收到的字节数可能小于请求接收的字节数例如当对方发送的数据量小于请求量时连接被对方正常关闭时返回0出错时返回-1并设置errno。
3. read() 函数
read() 函数是UNIX/Linux系统调用之一用于从文件描述符包括套接字读取数据。在网络编程中它也可以用来从套接字接收数据但通常recv()函数更为常用因为recv()提供了更丰富的错误处理和选项。
函数原型
#include unistd.h
ssize_t read(int fd, void *buf, size_t count);
fd文件描述符对于套接字编程来说这就是套接字文件描述符。buf指向缓冲区的指针用于存储读取的数据。count请求读取的字节数。
返回值成功时返回读取的字节数可能小于请求读取的字节数到达文件末尾时返回0出错时返回-1并设置errno。
区别与联系
使用场景在网络编程中send() 和 recv() 专门用于套接字通信而 read() 虽然也可以用于套接字但更通用可用于文件、管道等多种类型的文件描述符。功能send() 和 recv() 提供了更丰富的网络编程特性如消息边界的保持在某些套接字类型中而 read() 则更基础更通用。性能在大多数情况下对于套接字通信send() 和 recv() 的性能与 read() 相当但使用send() 和 recv() 可以使代码更清晰更易于理解和维护。