linux下自创网络编程聊天室(1)

在线聊天室

在线聊天室,通过网络建立的虚拟聊天室,分为文字聊天室,视频聊天室。

网络聊天室是在一个网站中,供许多人通过文字与符号进行实时(您输入的内容马上就能被别人看见)交谈、聊天的场所,它是一个向整个因特网开放的地方。 E时代 “E时代的到来,给人们提供了各种便利。然而,其中受非议最多、名声最差的莫过于网络聊天了。人们从新闻媒体中听说的、与网络聊天有关的事件,十有八九与诈骗、抢劫、杀人等社会丑恶现象联系在一起。网上聊天由于看不到对方容貌、不知对方的详细情况,容易将深藏在心底的感情与欲望淋漓尽致地宣泄出来,就连电话中及面对面时不敢说的话,都会一吐而出。所以,在聊天室里,许多难登大雅之堂的求爱信息屡有出现。但也正是在聊天室公共场所内发布的此类信息,严重地败坏了聊天室声誉及网友的声誉。分区网络聊天室分成三部分:聊天区、功能区、名单区。形式要与别人聊天首先得进入聊天室,一般聊天室的大门有两种形式:(1)直接进入式:在“代号”的位置上输入您的代号,选择好您去聊天的场所,单击“Go”就可以进入了。(2)会员注册式:一些聊天室并不能直接进入,必须先进行会员注册才能登陆。

 

客户端接收到共享内存的内容后,根据实际情况显示共享内存里面的内容。后登陆的用户可以看到前面用户的聊天内容。

本设计锻炼了linuxsocket的基本应用,服务端建立套接字的大致步骤:

1,建立socket

2,bind 绑定特定的端口。

3listen 监听特定的端口。

4accept,当有客户端连接服务器端口时,accept接收信息,并返回新的套接字描述符,提供给操作

5,根据实际需求,write,read,send,recv等操作

6,关闭套接字。

客户端大致步骤:

1,创建socket.

2,根据服务器地址,connect连接到特定服务器。

3write,read等读写操作。

4,关闭套接字。

 

功能分析

本系统是想在Linux系统下实现一个聊天室系统,只要有服务器和客户端。它具备的基本功能包括注册、登陆、一对一私聊、查看在线人数等。

1 服务器端:负责处理用户发来的各种信息,管理用户的动作(注册、登陆、一对一私聊、查看在线人数)和管理用户的信息。

2 客户端:主要用于查看在线人数、发送信息给特定用户等功能,

总体设计

本聊天室系统采用了c/s形式。服务器主要是处理客户输入信息。首先要存储客户的个人资料,相当于注册。再有,在客户的聊天信息时,也要记录下客户的聊天记录,已备查看聊天记录所用。当然,服务器还有自己的动态数据处理。客户状态分为链接客户和非连接客户,我采用结构体存储链接客户信息,以链表来记录链接客户。而链接客户又分为登陆客户和未登陆客户,这就通过修改链表上客户的名字。当客户一链接客户服务端时,就给客户一个账号,也就是相当于注册信息,同时并发服务器一直在为连接用户创建线程


                                       服务器并发模式(用进程)




用子进程做的并发模型服务器会产生僵尸进程,需要处理!!!!!!!!!!!!!!!





详细代码及图解请见

linux下自创网络编程聊天室(2)