//郑州轻工业大学
//题号:实验四 第一题
//题目:使用基于TCP的网络编程方法,完成远程注册与登录模块,即客户端发送相关请求,服务器端接收请求处理并返回响应消息。要求图形界面,数据库保存注册信息。
java基于TCP网络编程简单聊天窗口
包含登录,注册,客户端和服务端图形界面和数据库 储存注册信息
适合新人当作业或学习
示例图
登录界面
注册界面
聊天窗口
非常简洁,简洁的页面,简洁的方法。
方法介绍
/*
- ServerSocket测试 作为tcp网络通信的服务器端
- 1、创建ServerSocket对象,绑定监听端口
- 2、通过accept()方法监听客户端请求
- 3、连接建立后,通过输入流读取客户端发送的请求信息
- 4、通过输出流向客户端发送响应信息
- 5、关闭相关资源
- */
主要代码
服务端
public class ChatServer extends MyPanel implements ActionListener,Runnable{
//客户端Socket对象
protected Socket socket;
//读数据
protected DataInputStream input;
//写数据
protected DataOutputStream output;
public ChatServer(){
super();
jf.setTitle("服务端");
//创建线程对象:run()方法中接收对方发送的字符串
Thread t=new Thread(this);
t.start();
button1.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
send();
}
}
//发送按钮 发送信息
private void send() {
try {
//发送聊天内容,对方在run()方法中接收
output.writeUTF(Input1.getText());
//在文本区中显示
Text.append("服务端:" + Input1.getText() + "\n");
//清空南边输入发送内容的文本框
Input1.setText("");
}catch(Exception e){
e.printStackTrace();
}
}
//接收信息
@Override
public void run() {
ServerSocket server = null;
try {
server = new ServerSocket(7500);
//等待客户连接,连接上后才能继续执行下面语句
socket = server.accept();
//从套接字读数据的流
input = new DataInputStream(socket.getInputStream());
//向套接字写数据的流
output = new DataOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("线程启动!");
//保存对方发送过来的字符串
String inStr = "";
while (true) {
try {
//读取对方发送的字符串,根据不同内容分别处理
try {
inStr = input.readUTF();
} catch (IOException e) {
e.printStackTrace();
}
Text.append("客户端:"+inStr+"\n");
} catch (Exception e) {
System.out.println("有异常,连接中断!");
break;
}
}
System.out.println("线程结束!");
}
客户端
public class ChatClient extends MyPanel implements ActionListener,Runnable {
//客户端Socket对象
protected Socket socket;
//读数据
protected DataInputStream input;
//写数据
protected DataOutputStream output;
public ChatClient() {
super();
jf.setTitle("客户端");
Thread t=new Thread(this);
t.start();
button1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
send();
}
}
//发送信息
public void send() {
try {
//发送聊天内容,对方在run()方法中接收
output.writeUTF(Input1.getText());
//在文本区中显示
Text.append("客户端:" + Input1.getText() + "\n");
//清空南边输入发送内容的文本框
Input1.setText("");
}catch(Exception e){
e.printStackTrace();
}
}
//接受服务端的信息
@Override
public void run() {
try {
socket = new Socket("127.0.0.1", 7500); //127.0.0.1是回送地址,指本地机,一般用来测试使用。
//从套接字读数据的流
input = new DataInputStream(socket.getInputStream());
//向套接字写数据的流
output = new DataOutputStream(socket.getOutputStream());
//创建线程对象:run方法中接收对方发送的字符串
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("线程启动!");
//保存对方发送过来的字符串
String inStr = "";
while (true) {
try {
//读取对方发送的字符串,根据不同内容分别处理
inStr = input.readUTF();
/*如果对方端发送的不是“bye”,则在本方文本区追加显示聊天内容*/
Text.append("服务端:"+inStr+"\n");
} catch (Exception e) {
System.out.println("有异常,连接中断!");
break;
}
}
System.out.println("线程结束!");
}
很简单适合新手学习或者交作业
完整代码:https://download.csdn.net/download/muMason/40729699
超链接:完整代码
新人制作不易,真的是一个bug改一天!