如何在工商局网站上做网登,查品牌的软件有什么,施工企业会计案例分析论文,安庆什么网站做火题目#xff1a;基于UDP实现直播间聊天的功能 需求#xff1a; 软件划分为用户客户端和主播服务端两个软件client.c和server.c 用户客户端负责#xff1a; 1.接收用户的昵称 2.接收用户输入的信息#xff0c;能够将信息发送给服务端 3.接收服…题目基于UDP实现直播间聊天的功能 需求 软件划分为用户客户端和主播服务端两个软件client.c和server.c 用户客户端负责 1.接收用户的昵称 2.接收用户输入的信息能够将信息发送给服务端 3.接收服务端回复的数据信息,并完成显示 主播服务端负责 1.对所有加入直播间的用户的IP地址和端口实现管理加入、退出 2.当有新的客户端加入时,能够向所有客户端提示:欢迎 XXX 用户进入直播间 3.当有客户端退出时,能够向所有客户端提示:XXX 离开直播间 4.能够实现客户端聊天内容的转发,当某个客户端发送聊天信息时,能够将该信息转给除了该用户之外聊天室内所有其余客户端用户 实现服务端对用户的管理(1.查看当前直播间的在线人数 2.能够实现禁言、踢出直播间功能)
TCP通信:
TCP发端: socket connect send recv close
TCP收端: socket bind listen 监听 accept send recv close
1.connect int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 功能: 发送链接请求 参数: sockfd: 套接字文件描述符 addr: 目的地址 存放空间首地址 addrlen: IP地址的 大小 返回值: 成功返回0 失败返回-1
2.send ssize_t send(int sockfd, const void *buf, size_t len, int flags); 功能: 发送数据 参数: sockfd: 文件描述符 buf: 发送数据空间首地址 len: 发送数据的 长度 flags: 属性默认为0 返回值: 成功 返回 实际发送字节数 失败 返回 -1
3.recv ssize_t recv(int sockfd, void *buf, size_t len, int flags); 功能: 接收数据 参数: sockfd: 套接字文件描述符 buf: 存放数据空间首地址 len: 最大接收数据的长度 flags: 属性默认为0 返回值: 成功 返回 实际接收字节数 失败 返回-1 如果对方退出,返回0
4.listen int listen(int sockfd, int backlog); 功能: 监听客户端发送的 连接请求 该函数不会阻塞 参数: sockfd: 套接字文件描述符 backlog: 允许等待的尚未被处理的三次握手请求的最大个数 若最大接受10个 第11个不会接收 若处理完成10个 继续接收10个 返回值: 成功 返回 0 失败 返回 -1
5.accept int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 功能: 处理 等待连接队列 中的 第一个连接请求 该函数具有阻塞功能(如果没有人发送链接请求会阻塞等待) 参数: socket: 套接字文件描述符 address: 存放IP地址的空间 首地址 addrlen: 存放IP 地址大小 空间首 地址 返回值: 成功 返回 一个新的文件描述符 失败 返回-1