《计算网络》UDP聊天室
学院专业年级班别学号学生姓名指导教师成绩
计算机学院软件工程2011级1班
许青林
ff实验目的
UDP是无链接的通信方式,通信开销小,利用UDP实现聊天系统。通过实验掌握UDP的工作原理及应用方法。
实验要求
1、采用多线程技术,多用户同时在线。2、实现群聊功能,一个人发消息多人可收到。3、用JAVA实现UDP开发模型如下:
系统结构
聊天系统分为服务器端和客户端。服务器程序作为一个中转站,所有客户端都只与服务器进行通信。如图:
程序设计
服务器端:服务器与客户间通过套接口Socket连接。在java中使用套接口相当简单,JavaAPI为处理套接口的通信提供了一个类java
etSocket使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,服务端主要用到I
etAddressDatagramSocketDatagramPacket三个类;I
etAddress用于描
述和包装一个I
ter
etIP地址;DatagramSocket用于接收和发送UDP的Socket实例;DatagramPacket用于处理报文,它将Byte数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成Byte数组。
f客户端:客户端是一个JavaApplicatio
程序,客户通过Socket建立与服务器的连接。主要用到I
etAddressDatagramSocketDatagramPacket三个类三个类。
界面设计:客户端UI设计:ChatBoxes有五个输入框,包括本机端口,服务器端口,本机IP地址,服务器IP地址输入以及消息输入框,依次为Perso
alport,Serverport,Nick
ame和ServerIP以及se
d按钮左旁的输入框,且在输入的消息中自动获取本机时间,然后和发送消息一起打包发到服务器,服务器接收后发到客户端。服务器IP不为空。ServerUI设计:Serverchatboxes有两个输入框,分别是服务器端口(Serverport)和客户端端口(Perso
alport)和一个连接按钮(Co
ect);
代码(按照下面的格式创建相应的java文件,将代码粘贴复制即可)
1Se
dmessagejava
fpackagechatboxes
importjavaioSerializableimportjava
etI
etAddress
publicclassSe
dmessageimpleme
tsSerializable
privatestaticfi
allo
gserialVersio
UID1LprivateI
etAddressaddrprivateI
etAddressdestaddrprivateStri
g
ameprivateStri
gmsg
publicSe
dmessageI
etAddressaddrI
etAddressdestaddrStri
g
ameStri
gmsg
thisaddraddrthisdestaddrdestaddrthis
ame
ame
fthismsgmsg
publicI
etAddressgetAddrretur
addr
publicI
etAddressgetDestaddrretur
destaddr
publicStri
ggetNameretur
ame
publicStri
ggetMsgretur
msg
f2Servercharjava
packagechatboxes
importjavaawtBorderLayoutimportjavaawtCo
tai
erimportjavaawtFlowLayoutimportjavaawtGridLar