资源简介

使用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

评论

共有 条评论