TCP 聊天室v2 实现多人匿名聊天 C++,linux系统下

本文介绍如何在Linux环境下使用C++和select IO复用技术创建一个多人匿名聊天室。服务端作为消息中转,客户端通过键盘输入消息并接收其他用户消息。编译及运行过程包括对server.cpp和client.cpp的编译,服务端需先启动。
摘要由CSDN通过智能技术生成

使用select IO复用实现多人匿名聊天室(linux系统下)

功能:用户可发送消息,并同时能看到其他用户发的消息,用户输入over退出

实现思路:

       服务端仅作为消息的中转方,使用select管理所有连接的客户socket 以及自己的监听socket ,只用select的读fd_set

               当  某个用户socket可读时,读取消息,并发给其他所有用户

       客户端由于允许自己键入消息,所以也得用select管理  键盘这个socket  和  服务端的连接socket,都是读事件

所用函数:select IO复用,socket API阻塞函数(accept,connect,read,write)

Server:

#include <sys/socket.h>
#include <string>
#include <set>
#include <sys/select.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;
int main(){
	int listen_fd = socket(AF_INET,SOCK_STREAM,0);//创建一个监听socket
	struct sockaddr_in serveraddr;
	serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);//IN
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值