资源简介
使用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基础50道经典练习题及答案.doc
- Java中,当表单含有文件上传时,提交
- javaweb银行系统
- 银联Ecb加密算法
- JAVA对象所占内存大小计算
- 使用java Apache poi 根据word模板生成wo
- 基于java socket的P2P聊天程序
- Head First Java(中文第2版)源码(书内
- 简单的java scoket p2p聊天程序
- 蚁群算法解决01背包问题-java实现
- 2018华为软件精英挑战赛复赛代码 by
- java微信版飞机大战
- 基于JAVA的windows经典纸牌游戏,适用于
- MQ工具类java
- java实验实现圆类Circle,Cylinder
- Spring技术栈构建完整java前后台团购网
- JAVA简历更新,三年工作经验
- 最新JAVA教学视频-共810G
- Myshopping购物系统
- 华南理工大学java期末考试真题
- Java基于Socket文件传输
- java音像店管理系统
- installanywhere 2009打包java桌面程序安装
- 滑动窗口协议模拟 JAVA.zip
- svm_java版本代码详细解释
- java实现汉诺塔小游戏
- 4.3读取摄像头并显示
- java2word jar包
- 图书管理系统 servlet+jsp适合初学者
- Java证书打印工具类
评论
共有 条评论