资源简介
使用JAVA开发的网络聊天程序,带有UI界面以及客户端和服务器端的全部代码,适合于课程设计和JAVA的Socket编程学习,通信协议为IP。
代码片段和文件信息
//客户端部分
import java.awt.frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.IOException;
import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import javax.swing.JButton;
import javax.swing.JPanel;
public class ChatClient extends frame {
Socket socket = null;
TextField inputChat = new TextField(); // 定义文本框用来输入数据
TextArea showChat = new TextArea(); // 展示数据的地方
JButton submit = new JButton(“发送“);
JPanel pan = new JPanel();
DataInputStream dis = null; // 接收流
DataOutputStream dos = null; // 输出流
private String c_name = null;
private static boolean isRun = false;
private boolean flag = true; // 让c_name的传递只有一次
public ChatClient() {
}
public static void main(String[] args) {
new ChatClient().launchframe();
}
public ChatClient(String name) {
this.c_name = name;
this.launchframe();
}
public void launchframe() { // Swing 界面
this.settitle(“局域网聊天系统“);
int width = 510;
int high = 360;
this.setLayout(null);
this.setSize(width high);
showChat.setBounds(5 5 490 295);
pan.setBounds(5 305 490 45);
pan.setLayout(null);
inputChat.setBounds(5 5 400 40);
submit.setBounds(405 5 95 40);
// 居中地位
int w = (Toolkit.getDefaultToolkit().getScreenSize().width - width) / 2;
int h = (Toolkit.getDefaultToolkit().getScreenSize().height - high) / 2;
pan.add(inputChat);
pan.add(submit);
this.add(showChat);
this.add(pan);
this.setLocation(w h);
this.setVisible(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
disconnect();
System.exit(0);
}
});
inputChat.addActionListener(new TextFieldListener()); // 输入窗口中添加监听
submit.addActionListener(new TextFieldListener()); // 输入窗口中添加监听
connectToServer(); // 连接服务器
Thread clientThread = new Thread(new ClientThread());
clientThread.start(); // 启动客户端线程
}
private void connectToServer() {
try {
socket = new Socket(“125.221.225.105“ 8888);
dis = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
isRun = true;
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void disconnect() { // 如果没连接上服务器则关闭输入输出流和客户端套接字
// 关闭各种流之前必须先关闭接受线程
try {
if (dos != null) {
dos.close();
}
if (dis != null) {
dis.close();
}
if (socket != null) {
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private class ClientThread implements 属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4408 2013-12-27 21:26 ChatClient.java
文件 3923 2013-12-27 21:26 ChatServer.java
文件 2102 2013-12-27 21:26 Register.java
相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- 局域网聊天程序,群聊。私聊。发文
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
川公网安备 51152502000135号
评论
共有 条评论