工程技术学院毕业设计(论文)专用纸
}
public String receiveMsg()throws IOException{//接收数据 }
String msg=new String(); try {
msg=in.readLine();
} catch (IOException e) {??} return msg;
5和6主要完成对群消息的处理,5主要完成对信息的解包,显示等等;而6主要是对TCP连接的信息的接收,以及对用户信息的保存。 7.TCPConnect
public void run(){
try {
listen=new ServerSocket(port);
processMsg(\正在监听TCP端口???\建立TCP连接
} catch (Exception e) { } }
??
while(true){
Socket client = listen.accept();
MainChatFrame mf=new MainChatFrame(client,name);//启动一个私聊主界面 }
processMsg(\群聊功能仍可使用\建立失败,不过还可以群聊
??
根据所得到对方的IP信息建立一个TCP连接,并启动一个私聊主界面,进行TCP
通信。 8.UserInfo
public class UserInfo {//初始化用户信息,姓名以及IP地址,姓名是通过登录界面由用户键入的,IP
//地址是程序直接由机器获取的
21 第 页
工程技术学院毕业设计(论文)专用纸
private String name; private String IP;
public UserInfo(String name, String ip) {this.name = name;IP = ip;} public String getIP() {return IP;} public void setIP(String ip) {IP = ip;} public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
记录IP及用户名。
9.MainChatFrame
public void init(String name){//传入的参数为自身的用户名 ??
input.addActionListener(new ActionListener(){//接收信息的监听器 public void actionPerformed(ActionEvent e) { try { sendMsg(input.getText());
processMsg(\
input.setText(\
}}});
??
send.addActionListener(new ActionListener(){//发送信息的监听器 public void actionPerformed(ActionEvent e) { try { sendMsg(input.getText());
processMsg(\
input.setText(\
}}});
??
}
显示点对点聊天窗口,建立接收和发送数据的监听。
10.GroupChatFrame
第 22 页
工程技术学院毕业设计(论文)专用纸
public void eventHandle(){ input.addKeyListener(new KeyListener(){//接收信息的监听器 public void keyPressed(KeyEvent e) { if(e.getKeyChar()=='\\n') try{ byte[] dataS=(name+\
sf.packet=new
DatagramPacket(dataS,dataS.length,sf.group,sf.DEFAULT_PORT); sf.socket.send(sf.packet); input.setText(\
} ??
}});
sendBtn.addActionListener(new ActionListener(){//发送信息的监听器 public void actionPerformed(ActionEvent e) { try{ byte[] dataS=(name+\
sf.packet=new
DatagramPacket(dataS,dataS.length,sf.group,sf.DEFAULT_PORT); sf.socket.send(sf.packet); input.setText(\
}
??
}});}
显示群聊天窗口。
11.LoadingFrameDemo
public class LoadingFrameDemo {//主方法程序 public static void main(String[] args) { new LoadingFrame().init();
}
}
程序的入口。
第 23 页
工程技术学院毕业设计(论文)专用纸
4 JAVAqq局域网聊天程序的设计与实现
4.1 开发环境工具
基于JAVA聊天系统的设计主要运用JAVA与语言与Socket类开发。其开发的主要环境包括(Windows平台):
java环境jdk,建议采用jdk1.5以上,另外还需配置classpath环境变量,本系统开发工具为MyEclipse5.5;
4.2 硬件环境
本系统运行环境所需用到的环境为: 硬件配置 :
中央处理器(CPU) :Intel Core Duo processor T2250; 硬 盘:40GB HDD; 内 存:1G 667HZ;
显示器:14.1” WXGA CrystalBrite LCD; 显 卡:Up to 256MB NVIDIA GeForce Go 7300
软件环境:WINDOWS XP、MyEclipse 6.5、jdk1.6.03等。
4.3 聊天系统功能模块的测试
本次课程设计的编译环境,及编写平台为java。主要用到的类为java.net包中的Socket类和javax.swing包中的类。
服务器线程在程序运行期间一直有效,接受客户端请求信息,转发客户端聊天内容, 查看用户信息。
客户端运行时必须先登陆,登陆界面如图1,客户端主界面如图2,聊天程序主界面
24 第 页
工程技术学院毕业设计(论文)专用纸
如图3,可以和所有在线用户群聊,也可以和某个用户私聊如图4。
最终效果:
图1 登陆界面
图2 客户端主界面
第 25 页