基于TCP局域网聊天程序设计

基于TCP局域网聊天程序设计
基于TCP局域网聊天程序设计

第一章系统分析

1. 1系统设计要求:

1.

2.

3.

1. 2系统原理框图

本次课程设计的原理框图如图1.1所示:

图1.1系统原理框图

1. 3系统设计原理

局域网聊天程序的实现主要为局域网内的计算机提供交流的平台。完成一个基于服务器和客户端的局域网通讯软件,类似于聊天室,可进行注册、登录、系统信息记录、聊天等功能。用户容易使用,便于管理。

第二章系统设计理论基础

2.1TCP/IP 协议

TCP/IP协议的核心部分是传输层协议(TCP、UDP)网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。因此用户一般不涉及。TCP是面向连接的,通信

双方保持一条通路,好比目前的电话线,使用tel net登陆BBS用的就是TCP协议;UDP 是无连接的,通信双方都不保持对方的状态,浏览器访问In ternet时使用的HTTP协议

就是基于UDP协议的。

编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内设计,后者为核外设计。用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。

2.2客户机/ 服务器模式

C/S 结构(Client/Server 结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client 端和Server 端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是Client/Server 形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Wet和Client/Server 应用都可以进行同样的业

务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

首先服务器方要启动,并根据请求提供相应服务:

(1)打开一通信通道并告知本地主机,它在某一公认地址端口上(如http 为80)接受客户请求。

(2)等待客户请求到达该端口。

(3)接收到重复服务请求,处理该请求并发送应答信号。接收并发服务请求,要激活一新进程来处理这个客户请求。新进程处理此客户请求,并不需要对其他请求做出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。

(4)返回第二步,等待另外的客户请求

(5)关闭服务器。

客户方:

(1)打开一通信通道,并连接到服务器所在主机的特定端口。

(2)向服务器发出服务请求报文,等待并接收应答;继续提出请求。

(3)请求结束后关闭通信通道并终止。

从上面的描述过程可知:

(1)客户与服务器进程的作用是非对称的。因此编码不同。

(2)服务进程一般是先于客户请求启动的。只要系统运行,该进程一直存在,直到正常终止或者强迫终止。在TCP/IP 网络中两个进程间的相互作用的主机模式是客户机/ 服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。

2.3Socket

socket 之间的连接可以分为三种类型:客户端连接,监听连接以及服务器端连接。客户端连接是指由客户端的socket 提出连接请求,要连接的目标是服务器端的socket 。为此,客户端的socket 必须首先描述它要连接的服务器端socket(主要是指服务器端socket 的地址和端口号),然后再定位所要连接的服务器端socket ,找到以后,就向服务器端socket 请求连接。当然,服务器端的socket 此时未必正好处于准备好状态,不过,服务器端的socket 会自动维护客户请求连接的队列,然后在它认为合适的时候向客户端socket 发出"允许连接" (accept)的信号,这时客户端socket 与服务器端socket 的连接就建立了。

监听连接,服务器端socket 并不定位具体的客户端socket ,而是处于等待连接的状态。当服务器端socket 监听到或者说接收到客户端socket 的连接请求,它就响应客户端socket 的请求建立一个新的socket 句柄并与客户端连接,而服务器端socket 继续处于监听状态,还可以接收其它客户端socket 的连接请求。

服务器端连接,是指当服务器端socket 接收到客户端socket 的连接请求后,就把服务器端socket 的描述发给客户端,一旦客户端确认了此描述,连接就建立了。在本文中的聊天程序用的就是监听连接,即服务器设置连接个数后进行监听,客户端进行对服务器端的连接,这样就可以进行相互通信了。

第三章系统设计

局域网聊天程序的设计目标为一个高性能的,易于使用的,面向局域网的即时信息软件。最终的程序应具有如下功能:

(1)客户端使用简便,服务器端运行稳定。客户端与服务器端可运行在多种系统平台,具有良好的兼容性能。

(2)客户端与服务器端功能独立,可独立运行在不同的计算机上或运行在同一台计算机上,具有最大的灵活性。

(3)能够进行注册,设置自己的用户名和密码,自动更新其他用户的名单。

(4)选择特定用户并与其交谈,还可以向在所有在线的用户发送消息。

3.2客户端设计

客户端设计界面图为:

图3.1聊天客户端界面图

从聊天客户端界面图知道设计步骤为:

添加一个客户端socket控件(ClientSocket)到form中使之成为一个TCP/IP客户。

客户sockets允许你指定你想连接的服务器socket和你希望服务器提供的服务。一但

你描述你想得到的连接,你可以使用客户socket控件去完成连接服务。

每个客户socket控件使用独立的客户windows socket对象(TClientWinSocket)去

应答连接中的客户终端。使用客户sockets去:

A.指定想得到的服务

客户socket 控件有一个数字properties, 允许你指定想连接的服务器系统和端口。可以通过主机名来指定服务器系统,使用Host property 。

如果不知道主机名,或者关心找到服务器的速度,你可以指定服务器系统的IP 地址,通过使用Address property 。你必须指定IP 地址和主机名中的一个。

如果两个都指定,客户socket 控件将使用主机名。除服务器系统外,必须指定客户socket 将连接的在服务器系统上的端口。能够直接使用Port property 来指定服务端口号。或者直接在Service property 使用想得到的服务的名字。如果指定端口号和服务名,客户socket 控件将使用服务名。

B.建立连接

一旦在客户socket 控件中完成了设置所连接的服务器的属性,就可以进行连接,

通过调用Open方法。如果想要启动时自动建立连接,在设计时设置Active property 为

true ,通过使用Object Inspector 来设置。

C.取得关于连接的信息

完成连接到服务器socket 后,可以使用客户socket 控件和相关的客户windows socket object 去取得关于连接的信息。使用Socket property 去访问client windows socket object 。windows socket object 有一个properties, 它能让你确定在连接的两端客户和服务器使用的地址和端口号。

当使用一个windows socket API 调用时,可以使用SocketHandle property 区获得socket 连接使用的handle 。可以使用Handle property 去访问windows, 以便接收来自socket 连接的信息。AsyncStyles property 决定哪种信息类型是windows handle

要接收的。

D.关闭连接

当完成通讯想关闭socket 连接时,能够通过调用Close 方法来关闭连接。连接可能要由服务器端来关闭。如果是这种情况,将收到一个OnDisconnect 事件的通

知。

聊天客户端程序代码如下:

procedure TForm1.Button1Click(Sender: TObject);

begin

clientsocket1.Address:=edit3.Text;

// edit3.Clear;

clientsocket1.Active:=true;

button1.Enabled:=false;

button3.Enabled:=true;

button2.Enabled:=true;

button7.Enabled:=true;

end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject;

Socket: TCustomWinSocket);

begin

statusbar1.SimpleText:=' 正在连接... '+ clientsocket1.Address; end; procedure TForm1.ClientSocket1Connect(Sender: TObject;

Socket: TCustomWinSocket);

begin

statusbar1.SimpleText:=' 连接到'+ clientsocket1.Address;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if clientsocket1.Active then

begin

clie ntsocket1.Socket.Se ndText(use name+'"&%#八)@');

clientsocket1.Active:=false;

end;

statusbar1.SimpleText:=' 断开连接';

edit1.Enabled:=true;

edit2.Enabled:=true;

button1.Enabled:=true;

button6.Enabled:=true;

memo1.Clear;

listbox1.Clear;

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then

if button6.Enabled then button6.Click;

end;

procedure TForm1.Button6Click(Sender: TObject);

var

chatname : string;

i : integer;

begin

if edit4.Text='' then

begin

showmessage(' 发送消息不能为空!');

exit;

end;

if radiobutton2.Checked=true then

begin

for i:=0 to listbox1.items.count do

begin

if listbox1.selected[i] then

begin

chatname:= listbox1.items.strings[i];

memo1.lines.add(' 你对'+chatname+' 悄悄说:'+edit4.Text);

//edit4.Clear;

break;

end

end;

clientsocket1.Socket.SendText(edit4.Text+'&&'+chatname+'$$'+usename+'%&%&%&

');

edit4.Clear;

end

else

begin

clientsocket1.Socket.SendText(edit1.Text+' 对大家说'+edit4.Text);

edit4.Clear;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if edit1.Text='' then

begin

showmessage(' 请输入用户名!');

edit1.SetFocus;

exit;

end;

if edit2.Text='' then

begin

showmessage(' 请输入密码!');

edit2.SetFocus;

exit;

end;

clientsocket1.Socket.SendText(edit1.Text+'$%$%$%');

usename:=edit1.Text;

password:=edit2.Text;

end;

procedure TForm1.ClientSocket1Read(Sender: TObject;

Socket: TCustomWinSocket);

var

temptext : string;

//chatname: string;

mssge : string;

begin

temptext:=clientsocket1.Socket.ReceiveText;

if pos('@#$%A & ',temptext)v>0 the n /回送密码

begin

tempte

xt:=co

py(tem

ptext,

1,leng

th(tem

ptext)

-6);

if temptext=password then

begin

Memo1.Lines.Add(' 登陆成功,欢迎进入本聊天室!');

listbox1.Items.Add(usename);

button6.Enabled:=true;

button2.Enabled:=false;

edit1.Enabled:=false;

edit2.Enabled:=false;

button7.Enabled:=true;

end else

begin

showmessage(' 密码错误,登陆失败,请检查后重新登陆!');

clie ntsocket1.Socket.Se ndText(use name+'"&%#八)@');

end

end

else if pos('~{}( )&*%A',temptext)<>0 then // 他人登陆信息begin

temptex

t:=copy

(tempte

xt,1,le

ngth(te

mptext)

-9);

if temptext<>edit1.Text then

begin

memo1.Lines.Add(temptext+' 进入聊天室...');

listbox1.Items.add(temptext);

end;

end

else if pos('A$%#A$',temptext)<>0 then //off line

begin temptext:=copy(temptext,1,length(temptext)-6);

memo1.Lines.Add(temptext+' 离开聊天室...');

// showmessage(inttostr(listbox1.Items.IndexOf(temptext)));

if listbox1.Items.IndexOf(temptext)<>-1 then

listbox1.Items.Delete(listbox1.Items.IndexOf(temptext));

end

else if pos('#$%A&*{}',temptext)v>0 the n

begin

mssge:=copy(temptext,1,length(temptext)-8); memo1.Lines.Add(mssge);

end

else

memo1.Lines.Add(temptext);

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

form2.ShowModal;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

memo1.Clear;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin

if clientsocket1.Active then

begin

clie ntsocket1.Socket.Se ndText(use name+'"&%#八)@');

clientsocket1.Active:=false;

end;

end;

procedure TForm1.Memo1Change(Sender: TObject);

beg in

end;

end.

3.3服务器端设计

服务器端设计界面图为

图3.2聊天服务器界面图

从聊天服务器端界面图知道设计步骤为:

添加一个服务端socket控件(ServerSocket)到form中使之成为一个TCP/IP服务器。服务器sockets允许指定想提供的服务或想用来监听客户请求时使用的端口。也可以使用服务器socket控件去监听和允许客户连接请求。每个服务器socket控件使用一个单一的服务器windows socket Object(TServerWinSocket) 去应答在服务器端监听到的连接。它通常使用一个服务器客户win odws socket Object(TServerClie ntWin Socket)

应答在服务器端每个活动的,连接着得到允许服务的

客户socket o使用服务器sockets去:

A.指定端口

在服务器socket能够监听客户请求之前,必须指定一个端口给你的监听服务。可以使用Port property来指定这个端口。如果服务器应用提供一个标准的服务,这个服务使用一个习惯使用的相关联的端口。能够使用Service property 直接指定端口号。

使用Service property 是一个好的主意,能够减少设置端口号时的错误。如果既指定了Port property, 又指定了Service property, 服务socket 将使用服务名。

B.监听客户请求

一旦在serversocket 控件上设置好了端口号,就能够通过在运行时通过调用Open 方法来监听一个连接。如果希望应用程序能够在启动的时候自动监听连接,在设计的时候通过使

用Object Inspector 设置Active 属性为true 。

C.连接到客户端

当监听服务socket 控件接收到一个客户端连接请求时他们将自动接受这个请求。当没次收到通知时,OnClientConnetc 事件将发生。

D.取得关于连接的信息

一但服务器socket 打开了监听连接,就能够使用与服务器socket 控件相关联的服务器windows socket object 来取得关于连接的信息。使用Socket property 去访问server windows socket object.windows socket object 有一个属性是关于所有活动的客户socket 连接这些客户socket 是通过服务器socket 控件允许连接的。使用Handle 属性去存取windows 通过socket 连接收到的信息。

每个活动的,连接到客户应用是通过服务、客户windows socket bject(TServerClientWinSocket) 封装的。你能够通过server windows socket object 的连接

属性来访问所有的这些。这些server client windows socket object 有些属性能够决定哪些地址和端口号给连接的两端-- 客户和服务器socket 使用。当使用windows socket API 调用时,可以使用SocketHandle 属性去获得socket 连接使用的handle 。也可以使用Handle 属性去访问windows 从socket 连接处得来的信息。AsyncStyles 属性决定windows handle 将接收哪种类型的信息。

E.关闭连接

当决定关闭监听连接时,调用Close 方法。这将关闭所有打开着的,连接到客户应用

的连接,取消任何尚未同意的连接,接着关闭监听连接以便服务socket 控件不在接受任何

新的连接。当客户端关闭他们自己独立的连接到的server socket 的连接时,可以在

OnClientDisconnect 事件中得到讯息。

聊天服务器端程序代码如下:

procedure TForm1.ServerSocket1Listen(Sender: TObject;

Socket: TCustomWinSocket);

begin

statusbar1.SimpleText:=' 监听状态...';

counter:=0;

end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;

Socket: TCustomWinSocket);

begin

statusbar1.SimpleText:=' 连接到'+ socket.RemoteAddress;

end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;

Socket: TCustomWinSocket);

begin

statusbar1.SimpleText:= Socket.RemoteAddress +' 已连接';

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;

Socket: TCustomWinSocket);

var

tmptext: string;

check :string;

i,j: integer;

chattext:string;

signpos : integer;

member : string;

usename : string;

begin

tmptext := socket.ReceiveText;

if pos('%&%&%&',tmptext)<>0 then // 当有'%&%&%&字' 符串时表示私聊begin

tmptext := copy(tmptext,1,length(tmptext)-6);

signpos:= pos('&&',tmptext);

chattext:= copy(tmptext,1,signpos-1);

member:=copy(tmptext, signpos+2,pos('$$',tmptext)-2-signpos);

usename:=copy(tmptext,pos('$$',tmptext)+2,length(tmptext)-pos('$$',tmptext) +2);

for i:=0 to counter-1 do

begin

if member=chatname[i] then

begin

serversocket1.Socket.Connections[i].SendText(usename+' 悄悄对你说:

'+chattext);

break;

end;

end;

end

else if pos('$%$%$%',tmptext)<>0 then // 当有'$%$%$%表' 示有登陆信息begin

tmptext := copy(tmptext,1,length(tmptext)-6); chatname[counter]:=tmptext;

listbox1.Items.add(tmptext);

check :=(table1.lookup('usename',tmptext,'password'));

socket.Se ndText(check+'@#$%A&');

if counter>0 then

begin

for i:=0 to counter-1 do

begin

serversocket1.Socket.Co nn ectio ns[cou nter].Se ndText(chat name[i]+'~{} ()&*%A'); serverSocket1.Socket.Co nn ectio ns[i].Se ndText(tmptext+'~{} ()&*%A');

sleep(300);

end;

end;

inc(counter);

end

else if pos('??**##',tmptext)<>0 then // 表示注册信息begin

signpos:=pos('??**##',tmptext);

member:=copy(tmptext,1,signpos-1);

chattext:=copy(tmptext,signpos+6,length(tmptext)-6-length(member));

with table1 do

begin

if table1.FindField('usename').AsString=member then

socket.SendText(' 用户名已经有人用了,请检查后重新注册。') else

begin

insertrecord([member,chattext]);

memo1.Lines.Add(' 新用户:['+member+'] 注册成功!');

socket.SendText(' 注册成功,请先登陆再进行聊天!');

end;

end;

end

else if pos('"&%#A)@',tmptext)v>0 then // 有人走了

begin

tmptext:=copy(tmptext,1,length(tmptext)-8);

// memo1.Lines.Add(' 用户['+tmptext+'] 离开聊天室。');

for i:=0 to counter-1 do

serversocket1.Socket.Co nn ectio ns[i].Se ndText(tmptext+'A$%#A$');

for i:=listbox1.items.Count downto 1 do

if listbox1.Items.Strings[i-1]=tmptext then

begin

listbox1.Items.Delete(i-1);

dec(counter);

end;

end

else // 当无任何标记时表示公聊

begin

for i:=0 to counter-1 do

serversocket1.Socket.Connections[i].SendText(tmptext); end; end;

procedure TForm1.N1Click(Sender: TObject);

begin

serversocket1.Active:=false;

serversocket1.Close;

end;

procedure TForm1.ServerSocket1Accept(Sender: TObject;

Socket: TCustomWinSocket);

begin

clientip:=socket.RemoteAddress

end;

procedure TForm1.ServerSocket1ClientError(Sender: TObject;

Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;

var ErrorCode: Integer);

begin

if errorcode=10054 then

errorcode:=0;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

table1.Active:=true;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if not serversocket1.Active then

begin

serversocket1.Active:=true;

memo1.Lines.Add(' 服务器连接!['+Datetimetostr(now)+']'); end else showmessage(' 已经在监听状态');

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

serversocket1.Active:=false;

serversocket1.Close;

statusbar1.SimpleText:=' 服务器已经关闭';

memo1.Lines.Add(' 服务器关闭!['+Datetimetostr(now)+']');

listbox1.Clear;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

button1.Click;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

Form3.ShowModal;

end;

end.

3.3 数据库设计

Delphi 中的DataBase Desktop 数据库允许用户创建、查看、排序、修改及查询一系列的Paradox、dBASE及SQL格式的数据表格,选用Edit|Paste Link 可

以用DDE动态数据交换Dynamic Data Exchange)与在其它应用程序中的数据建立激活动连接。

利用Delphi 的客户/ 服务器功能,可以在本地数据库上或远程数据库服务器上开发客户/ 服务器模式的应用程序。Delphi 的一个强有力的功能之一是可以将基于本地桌面数据库系统的应用程序很容易地修改成客户/服务器模式的应用。一个Delphi 数据库应用程序访问的是本地数据库还是远程SQL数据库服务器上的数据库,这对于最终用户是完全透明的。

在本次课设中要记录那些注册了的人的信息,就要使用Delphi 中的DataBase Desktop 数据库来保存,要正确运行本次聊天程序,就需要建立chat 的数据库别名指向table 目录,可以使用Database Desktop 建立别名。服务器先运行,自动到监听模式,然后可以运行N个客户端,这样就能进行聊天了。

第四章系统测试调试

4.1 测试调试过程

测试调试:

1>. 打开Delphi7 ,在form 里面添聊天程序所需要的控件,对部分控件编程,完成

聊天程序总体设计之后,按下F9运行看看是否出错。

2>.如果第一步骤出错,看看错误的外部表现,定位错位位置。

3>.由第二步骤在来分析有关程序代码,找出错误的内在原因。

4>.修改程序代码,排除这个错误。

5>.重复进行暴露了这个错误的原始测试以及某些回归测试,以确保该错误确实被排除且没有引入新的错误。

6>. 如果所作的修正无效,则撤消这次改动,重复上述过程,直到找到一个有效的办法为止。

7>.测试调试完所有错误之后,点下Run 看看设计的界面是否和要求一致,如果不一致就说程序编译达不到要求,这就要重新修改程序直到达到要求为止。

4.2 调试中出现的问题

1>.在客户端设计时, 不知道怎么保留注册了的人的信息, 经过查找资料, 发现可以使用Delphi 中自带的DataBase Desktop 数据库记录注册信息, 这样问题就解决了。

2>.在服务器端设计时,不知道怎么显示在线用户以及他们的个人信息,通过socket 打开监听,使它处在监听状态,这样就能显示在线用户。

3>.数据库的设计部分的设计出现了很多的问题,如怎样记录信息,怎么样使聊天程序正常运行,以及怎么使服务器端的监听自动,经查阅有关数据库方面的书和请教了老师最后这些问题一一解决了。

4>.局域网聊天时,发送信息过去在对方那里需10 几秒之后才能显示出来,这个问题困扰了好几天,后面就简化界面,能不用的控件就不用,尽量简单,果然把这个问题解决了,现在局域网聊天时候,一发送完信息,在对方那立刻显示。

局域网内的多功能聊天室的设计与实现

JISHOU UNIVERSITY 专业课课程论文题目:局域网内的多功能聊天室的设计与实现 作者: 学号: 所属学院:信息科学与工程学院 专业年级: 总评分: 完成时间: 吉首大学信息科学与工程学院

局域网内的多功能聊天室的设计与实现 局域网内的多功能聊天室的设计与实现 (吉首大学信息科学与工程学院,湖南吉首 416000) 摘要 在计算机技术飞速发展的今天,随着Internet的普及和发展,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见、最直接的网上交流的方式。本论文主要研究一个以网络交友为主,为广大用户提供一个借助网络进行人际交往的信息平台。 本文所设计的局域网聊天系统是基于开放的WEB服务器应用程序开发设计的,其主要特征是能动态完成信息的传递且具有高效的交互性,有效的处理客户请求且具有更简单、更方便的数据库访问方法,易于维护和更新。这种技术程序由JAVA、HTML、数据库和脚本语言组合而成。主要功能模块包括:用户登录、注册部分;编写和显示聊天记录部分;管理员管理聊天室的管理部分。聊天系统编写和显示聊天记录部分界面友好,提供动作、表情、公聊或私聊等操作;管理部分可以删除不守规矩的注册用户、踢出在线用户以及删除某些不合时宜的聊天记录等、根据数据库需求分析,在ACCESS中定义3个表:用user表来存放注册用户信息、用activetable 表来存放当前在线用户信息以及用message表来存放聊天记录。本系统相比较其他信息交流平台具有开发方便、快捷,占用资源少,维护方便等优点。 【关键词】Java,数据库,脚本语言,聊天系

LAN of multi-function chat room design and Implementation Raotao (College of Information Science and Engineering,Jishou University,Jishou,Hunan 416000) Abstract The rapid development of computer technology today, with the popularity and development of Internet, people's work and life has become increasingly inseparable from the support of the information network, and the chat room is one of the most common, the most direct online communication mode.In this thesis, a network of friends, for the vast number of users with a network of have the aid of interpersonal information platform. The design of the LAN chat system is based on an open WEB server application development and design, its main characteristic is to complete the information transmission dynamically with high interactivity, effective customer request and has a more simple, more convenient database accessing method, easy maintenance and update.The technical program by JAVA, HTML, database and script language and combination.The main function modules include: user login, registration section; write and display chat recording part; the administrator manage the chat room management section.Chat system to prepare and display chat interface friendly, with action, expression, the public chat or operation; management can remove the unruly registered user, play online user and delete certain be inopportune or inappropriate chat records, according to the database needs analysis, defined in ACCESS 3: user table table for registered users of information, using activetable table to store the current online user information and the use of message table to store the chat record.This system is compared with other information exchange platform with the development of convenient, fast, less resource occupation, easy maintenance and other advantages. Key words:JA V A; data capture; information analysis ; Winpcap;Jpcap

局域网聊天系统(详细设计)

局域网聊天系统 详 细 设 计 成绩:

目录 1.功能需求 (1) 2.数据库设计 (1) 2.1 基本表设计 (1) 2.1.1 表结构汇总 (1) 2.1.2 T_Users表结构设计 (2) 2.1.3 XXX表结构设计 (2) 2.2 视图设计 (2) 2.2.1 视图汇总 (2) 2.2.2 XXX视图设计 (2) 2.3 存储过程设计 (3) 2.3.1 存储过程汇总 (3) 2.3.2 XXX存储过程代码 (3) 3.服务器端设计及实现 (3) 3.1 启动服务器功能的设计与实现 (3) 3.1.1 界面设计 (3) 3.1.2 流程 (4) 3.1.3 关键代码 (4) 3.2 消息管理功能的设计与实现 (4) 3.2.1 界面设计 (3) 3.2.2 流程 (4) 3.2.3 关键代码 (4) 4.客户端的设计与实现 (5) 4.1 注册模块的设计与实现 (5) 4.1.1 界面设计 (5) 4.1.2 流程图 (6) 4.1.3 关键代码 (6) 4.2 登陆功能的设计与实现 (6) 4.2.1 界面设计 (5) 4.2.2 流程图 (5) 4.2.3 关键代码 (6) 4.3 聊天功能的设计与实现 (7) 4.3.1 界面设计 (8) 4.3.2 流程图 (8) 4.3.3 关键代码 (9) 5.人员及分工 (9)

局域网聊天系统 详细设计1.功能需求 图 1 项目功能结构图2.数据库设计 2.1 基本表设计 2.1.1 表结构汇总 表 1 基本表汇总

2.1.2 T_Users表结构设计 表 2 用户表(T_Users)结构设计 2.1.3 XXX表结构设计 表 3 XXX(xxx)结构设计 2.2 视图设计 2.2.1 视图汇总 2.2.2 XXX视图设计

JAVA局域网聊天参考文献

主要参考文献: [1]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001. [2]朱福喜,傅建明,唐晓军.Java项目设计与开发范例[M].北京:电子工业出版社,2005. [3]朱福喜,唐晓军.Java程序设计技巧与开发实例[M].北京:人民邮电出版社,2004. [4]洪维恩,何嘉.Java面向对象程序设计[M].北京:中国铁道出版社,2005. [5]刘慧宁.Java程序设计[M].北京:机械工业出版社,2005. [6]殷兆麟.Java网络编程基础[M].北京:清华大学出版社,2004. [7]黄强.WINDOWS网络编程[M].北京:人民邮电出版社,2003. [8]W.Richard Stevens.TCP/IP详解[M].范建华,译.北京:机械工业出版社,2000. [9]Andrew S.Tanenbaum,Vrije Universiteit,Amsterdam,The Netherla.计算机网络[M].4版.潘爱民,译.北京:清华大学出版社,2004. [10]林晓.基于TCP/IP的局域网聊天工具设计[J].福州:福建电脑,2007,(10): 123-124. [11]林锐.软件工程思想[M].西安:西安电子科技大学出版社,2001. [12]耿祥义,张跃平.Java2实用教程[M].2版.北京:清华大学出版社,2006. [13]赵海亮.局域网聊天程序的分析与实现[J].北京:中国科技信息.2004,(22):17-18. [14]马勇.基于UDP多播文件传输方法的研究[J].福州:福建电脑.2009,(2):69-70. [15]黄海芳,宋筱媛.基于UDP组播的局域网聊天设计[J].福州:福建电 脑.2008,(2):121-122.

《基于Android的简单聊天通信软件设计》课程设计报告

目录 摘要 (1) 1.题目 (2) 2.概要设计 (2) 3.实训心得 (14) 4. 附录 (15) 1.题目 基于Android的简单聊天通信软件设计 (1)欢迎界面 (2)登录界面,登录界面中选择对方的IP地址和端口号 (3)与对方实现连接。实现点对点的通信。即点对点的聊天。 (4)聊天界面中,包括显示对方信息、聊天内容显示框、聊天内容输入框,以及发送按钮等(5)扩展1:实现表情的发送和显示,或者实现图片的发送和显示。 (5)扩展2:实现多人聊天。 1.1 需求分析 设计一个基于安卓系统的简单聊天通信软件,软件要实现点对点的通信。 UI:自己设计好符合软件的界面,使软件成熟化。 拓展:如有能力可使软件实现多人聊天,发生图片等。 2.概要设计 2.1 流程图 ↓ ↓

↓ ↓ ↓ ↓ 2.2详细设计 main.xml: 欢迎界面,延迟2秒左右自动跳转。Hello.java为其响应目录。 password.xml: 登录界面,验证用户输入信息,错误时用户可重新输入,正确后方可进 password.java为其响应目录。 findpassword.xml: 在登录界面中点击“忘记密码”后的跳转页面,可通过注册时的邮箱找回密码,但此功能目前还未实现,只有界面。findpassword.java为其响应目录。 create_id.xml: 在登录界面中点击“创建新账号”后的跳转页面,也还未实现其功能。create_id为其应目录。 main_menu.xml: 登录后的主菜单,包括“聊天”、“联系人”、“查找”等功能,均为图片按 main_menu.java为其响应目录。 chat.xml: 在主菜单中点击“聊天”后的聊天界面,输入IP地址后联系,可与进入相同服务器的用户聊天,聊天内容显示在对话框中。chat.java为其响应目录。 profile.xml: 在主菜单中点击“我的资料”的跳转页面,显示用户的一些信息。profile.java为其响应目录。 feedback.xml: 在主菜单中点击“反馈我们”的跳转页面,用户可在此页面告诉我们一些意见,但此功能目前还未实现。feedback.java为其响应目录。 about.xml: 在主菜单中点击“关于”的跳转页面,显示一些版本信息。about.java为其响应目录。setting.xml: 在主菜单中点击设置按钮后的跳转页面,其内容包括“切换账号”和“退出”。setting.java 为其响应目录。

TCPIP 网络聊天课程设计

《TCP/IP和网络编程》课程设计 题目:网上聊天 姓名 学号 指导教师 二零一零年月日

一、系统功能描述 使用Socket实现网上聊天功能。用户可以通过客户端连接到服务器端并进行网上聊天。当然,聊天时可以启动多个客户端。服务器支持多个主题,进入服务器后可选定主题,启动客户端后,输入服务器的IP地址即可。用户聊天必须处于同一个主题中。 二、系统的模块划分 服务器端: CAboutDlg:生成关于的对话框类 CCChatServerApp:对应用程序进行初始化 CCChatServerDoc、CCChatServerView:一份文档可以有多个相关的视图,当用户在文档上打开一个窗口时,框架创建一个视图并将其与文档连接。 CClientSocket:设置非阻塞,将前台的界面处理和后台的网络通信都整合到消息传递模型。获取输入的用户名,聊天室列表。 CINIFILE:可以读取.修改变量数值,可以设置新的组,新的变量 CMainFrame:创建应用程序主窗口,使之以树菜单保持展开状态 CMyFormView:在程序中应用窗体,可将新窗体插入。 CMyTreeView:将聊天室列表以树形排列,并实现用户发送消息的方法。 CParseMessage:实现信息的传输。 CServerSocket:实现多个客户端的登录。 CSetServerPortDlg:设定连接的端口。 Message:建立一个结构体,设定房间名、用户名、以及发送内容的类型和长度。 客户端: CChatClientApp:实现客户端与服务器端的连接。 ChatClientDoc:从服务器端获取聊天室内房间的名称的文本。 CClientFormView:初始化房间的名称。 CClientLog:显示上次登录的用户名的对话框。 CConnectServerDlg:客户端与服务器端的连接的对话框。 CIniFile:读取当前目录下的ini文件。 CShowMessage:显示其他客户端发送的消息。 CParseMessage:用户登录时的所选择登陆端口,IP,用户名的对话框。 CMyTreeView:客户端上显示的树形列表,以及可实现发送消息头像闪动等。三、调试数据 首先启动服务器端

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent. Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce. The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need. Keywords:LAN chat P2P java

网络编程聊天程序课程设计

课题名称:TCP/IP协议及网络编程技术课程设计子课题:实现简化功能的客户机和服务器聊天程序 院(系):计算机学院 专业:通信工程 班级: 学生姓名:hshengxue 学号:200900402022 指导教师:周坚和 2012年 6 月22 日

目录 摘要 (3) 引言 (3) 一、课程设计的目的和意义 (3) 二、课程设计的内容和要求 (3) 三、课程设计所需了解的相关内容和技术 (4) (一)、套接口 (4) (1)套接口的概念 (4) (2)套接口的分类 (5) (3) Socket工作模式 (6) (二)、所用的关键技术 (6) (三)Winsock API的使用 (7) 四、课程设计过程 (7) (一)设计思路 (7) (1)服务器的主要工作流程 (7) (2)客户机的工作流程.............................................8. (3)服务器的工作流程 (8) 五、编程实现 (9) (一)服务器端的实现 (9) (二)客户端的实现 (11) 六、小结 (15) 七、参考文献 (16)

摘要: 网络应用程序是通过网络使用通信协议实现进程间的通信;本项目采用软件工程的方法,综合运用网络程序设计,以visual c++6.0作为系统前台应用程序开发工具。此局域网聊天工具采用客户端/服务端(C/S)模式和UDP连接。它由两个程序组成:服务器(Server)和客户端(Client),首先需要登录服务器,再登录客户端,需要指定服务器IP地址以便与服务器建立连接。登录后,客户可以在自己的界面上与另一指的定的客户端进行聊天。服务器模块主要用来维护网络用户用户的信息,包括用户IP地址,聊天内容;聊天客户端模块主要包括用户连接,发送信息,接收信息。是一套用于Internet网络使用的网络聊天工具,其操作简单,灵活性好,运用也比较稳定。 关键词:网络,聊天程序,客户端/服务端,UDP传输控制协议。 0、引言 网络应用程序是通过网络使用通信协议实现进程间的通信,UDP 是TCP/IP协议族为传输层设计的两个协议之一,UDP提供的是无连接、不可靠的网络传输协议,在进行网络应用程序设计时,TCP/IP 协议的核心内容被封装在操作系统中。网络应用程序要使用UDP协议来实现自己的功能,只能通过由系统提供给用户的UDP协议编程接口来实现。因此,可以说设计网络应用程序就是利用网络编程接口(API)进行程序设计的过程。在Windows环境下的网络应用程序编程接口叫

局域网聊天程序的实现

分类号:TP311.1 U D C:D10621-032-(2007)6165-0 密级:公开编号:2003032147 成都信息工程学院 学位论文 局域网的聊天程序的实现 论文作者姓名:吴剑辉 申请学位专业:网络工程 申请学位类别:工学学士 指导教师姓名(职称):王海春(教授) 论文提交日期:2007年06月10日

局域网的聊天程序的实现 摘要 网络通讯是目前计算机用户进行交流最普遍的方式,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。本文介绍了在Windows环境下开发局域网聊天程序思路和方法。系统使用流行的Delphi7.0开发软件,采用Socket技术实现网络通讯。数据库使用Delphi自带的Database desktop。系统采用典型的C/S(服务器/客户端)构架。系统主要实现了用户注册、登录、聊天、服务器管理等功能。本系统从需求分析、系统的设计、具体功能的实现都严格遵循了软件设计工程的思想。 关键词: Socket; TCP/IP; C/S

The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc.From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words:Socket; TCP/IP; C/S

易语言简单局域网聊天代码(客户服务器组件编写)

客户机代码:. 版本2 .支持库shell .支持库xplib .程序集窗口程序集1 .程序集变量文件号1, 整数型 .程序集变量文件长度, 整数型 .程序集变量发送内容, 字节集 .程序集变量文件名, 文本型 .程序集变量文件号2, 整数型 .子程序_按钮1_被单击 .局部变量现在时间, 文本型 .如果(编辑框7.内容=“1”)

.如果(编辑框6.内容≠“”) .如果(编辑框2.内容≠“”) 客户1.发送数据(“聊天”+编辑框2.内容) 现在时间=到文本(取年份(取现行时间())) +“/”+到文本(取月份(取现行时间())) +“/”+到文本(取日(取现行时间())) +“/”+到文本(取小时(取现行时间())) +“:”+到文本(取分钟(取现行时间())) +“:”+到文本(取秒(取现行时间())) 编辑框1.内容=编辑框1.内容+“【本机】”+现在时间+#换行符+“”+编辑框2.内容+#换行符 编辑框2.内容=“” .否则 信息框(“发送消息不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器IP地址不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器未连接”, 48, “提示”) .如果结束 .子程序_按钮2_被单击 .如果(编辑框6.内容≠“”) .如果(编辑框8.内容≠“”) .如果(客户1.连接(编辑框6.内容, 1991) =真) 播放MP3 (1, “xlj.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“成功”+#换行符 按钮2.禁止=真 编辑框7.内容=“1” 客户1.发送数据(“昵称”+编辑框8.内容) .否则 播放MP3 (1, “lk.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“失败”+#换行符.如果结束 .否则 信息框(“请填写你的昵称”, 48, “提示”) .如果结束

java版基于UDP协议网上聊天程序课程设计

湖南工业大学 课程设计 资料袋 计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称网络协议分析指导教师李建设职称副教授 学生姓名专业班级网络工程学号 题目基于UDP协议网上聊天程序 成绩起止日期2013 年11 月25 日~2013 年12 月13 日 目录清单

5 6 课程设计任务书 2013 —2014学年第1 学期 学院(系、部)计算机与通信学院专业网络工程班级102 课程名称:网络工程学生姓名: 设计题目:基于UDP协议网上聊天程序指导教师:李建设 完成期限:自2013 年11 月25 日至2013 年12 月13 日共 3 周 容 及 任 务 一、设计内容 实现一个基于UDP协议的简单的聊天程序,包括服务器和客户端。 1.支持多人聊天。 2.客户端具有图形化用户界面。 二、设计任务 课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 三、设计要求 1.按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。 2.课程设计所使用的编程语言任选,但建议使用C或C++; 3.绿色软件:程序运行不需安装,避免写系统和注册表; 进 度 安 排 起止日期工作内容 2013-11-25~2013-11-3 选题 2013-12-1~2013-12-3 系统分析和设计; 2013-12-4~2013-12-8 熟悉软件开发工具、编码系统、系统测试 2013-12-9~2013-12-13 撰写并提交课程设计说明书(含电子文档)、源程序等。

网络课程设计实验报告--QQ聊天实现

计算机网络课程设计报告 设计选题网络聊天室 姓名马继鸣 学号 0909090630 完成时间 2012-1-12 一、需求分析

聊天工具大多数由客户端程序和服务器程序外加服务器端,本程序采用客户机/服务器架构模式。通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能。用多线程可完成多点对多点的聊天。 主要有两个应用程序,分别为服务器程序和客户端程序。服务器应用程序主要用于消息转发,以及向所有用户发送系统消息等;客户端应用程序主要用于客户聊天记录的显示和信息输入。采用Client/Server(C/S)体系结构,即客户机/服务器体系结构。聊天服务器专门用于监控用户状态和转发消息,客户端负责接收消息的用户序列和消息文本发送到服务器。该聊天系统实现群聊,用户登陆,退出聊天系统等功能。 二. 设计 1.设计思想: 课程设计中利用JAVA实现基于C/S模式的聊天程序。聊天室共分为服 务器端和客户端两部分,服务器端程序主要负责侦听客户发来的消息,客 户端登录到服务器端才可以实现正常的聊天功能。

2.功能设计 (1)服务器端的主要功能如下。 在特定端口上进行侦听,等待客户端连接。用户可以配置服务端的侦听端口,默认端口为10000. 当停止服务时,断开所有用户连接。 (2)客户端的主要功能如下。 连接到已经开启聊天服务的服务端。 当服务器端开启的话,用户可以随时登录与注销。

用户可以向所有人发送消息。 3.详细设计 聊天室服务器端设计 聊天室服务器中主要的功能文件的功能如下: MyButLis.java 主要用于添加事件侦听和动作处理,具体是服务器按钮中的“终止”“发送”的处理。 public class MyButLis implements ActionListener private MyServe server; private JTextField filed1; public void actionPerformed(ActionEvent e) MyChatSet.java 服务器的线程队列,运行的方法,新增一个用户,则增加一个线程,并可以返回应答消息,给其余用户发送上下线信息,发送聊天信息(群聊私聊虽然已写,但是不知为何没有实现),发送用户列表。关键在于除了线程之外,还定义了传输数据时的协议内容,如何分辨不同的信息,如聊天信息,登陆信息,上下线信息,并把信息完整准确的传递。 public static ArrayList servers=new ArrayList();//线程队列 public static void addThread(MyserThread th) //增加一个服务器线程对象 public static void sendReMess(String type,String state,String s,MyserThread myth)//返回应答信息 public static void SendOSMess(String type,String user)//其他用户上下线信息 public static void SendChatMess(String type,String sender,String reciver,String Mess)//聊天信息 public static void SendList//用户列表 MyCheckTool.java 保存用户的登陆信息,在其中建立一个码表,并且可以判断登陆信息是否合法。 //建立码表,用以保存用户信息 private static Map maps=new HashMap(); public static boolean CheckUser(MyUserInfo user)// 验证用户名

局域网即时聊天程序的设计与实现论文

摘要 局域网即时聊天通过进行文本聊天和语音聊天来实现彼此沟通、交流信息。 本次局域网即时聊天程序设计主要用了Visual C++编程环境,实现了在LAN中 在线用户的文本、语音交互。 在设计里涉及到了网络通信基本原理和Socket编程及语音处理API技术。 由于程序是在TCP/IP环境下运行,所以分服务器端和客户端。服务器端和客户 端是通过建立Socket链接来实现聊天功能。 本次设计主要着重于语音聊天部分,在本次论文里主要以语音聊天的流程和 各模块之间的关系及Socket处理为主说明。 关键词: Visual C++编程环境网络通信基本原理 Socket编程语言处理API

Abstract The local area network chats immediately through carries on the text to chat with the pronunciation chats realizes each other communication, the exchange information. This local area network chatted the programming mainly to use Visual immediately the C++ programming environment, has realized in LAN the on-line user's text the pronunciation interactive Involved in the design to the network correspondence basic principle and the socket programming and the pronunciation processes the API technology. Because the procedure is in TCP Under the IP environment moves, therefore divides the server end and the client side. The server end and the client side are through establishes Socket to link realizes chats the function. This design mainly emphatically chats in the pronunciation the part, mainly between the flow and various modules relations and the socket processing which chats by the pronunciation primarily explained in this paper. Keywords:Visual C++ programming environment network communication fundamentals Socket programming sound API.

软件工程课程设计方案Socket聊天系统

目录 1.前言 (1) 2.需求分析 (2) 2.1系统的功能需求 (2) ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 2.2非功能需求: (2) ................................................................................................................................... 错误!未定义书签。 2.3用例分析 (2) ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 3.总体设计 (3) 3.1TCP服务器设置 (3) 3.2分析类图 (4) 3.3顺序图 (5) ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 3.3协作图 (5) ................................................................................................................................... 错误!未定义书签。 ................................................................................................................................... 错误!未定义书签。 4.详细设计 (5) 4.1客户端设计 (5) 4.2服务端设计 (6) 4.3多线程设计 (6) 5.代码实现 (7) 5.1服务端设计 (7) 5.2客户端设计 (9) 5.3多线程 (12)

JAVA课程设计--简单的网络聊天程序

本科课程设计课程设计题目:简单的网络聊天程序

课程设计报告1.设计目的:

序言 1.1 背景 在当今的信息时代,越来越多的聊天工具被应用,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的聊天室,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 1.2 相关技术 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows7 运行环境:eclips

2. 程序设计与实现 2.1需求分析 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,如:指针运算、结构、typedefs、#define,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写聊天室,实现简单聊天功能。本次课程设计做的是Java简单聊天室,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了聊天室的基本功能,其中有: (1)启动服务器:实现网络的连接,为注册进入聊天室做准备。 (2)启动客户端:实现网络的链接,可以进行正式的聊天 (3)发送信息:为用户发送信息提供平台。 (4)离开界面:使用户退出聊天室。 (5)关闭服务器:断开与网络的连接,彻底退出聊天室。

相关文档
最新文档