java TCP网络编程简单聊天窗口(登录,注册,客户端和服务端图形界面和数据库)适合当作业或学习

//郑州轻工业大学
//题号:实验四 第一题
//题目:使用基于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改一天!
在这里插入图片描述

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
可以使用Java的Socket编程实现基于TCP协议的网络聊天程序服务端客户端。在程序中,服务端客户端可以通过Socket建立连接,使用输入输出流进行数据传输。当客户端发送“拜拜”消息时,服务端可以通过判断消息内容来结束运行,同样地,客户端也可以通过判断服务端发送的消息内容来结束运行。以下是一个简单的示例代码: 服务端: ```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("Server started."); Socket socket = serverSocket.accept(); System.out.println("Client connected."); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); String message; while ((message = in.readLine()) != null) { System.out.println("Client: " + message); if (message.equals("拜拜")) { break; } out.println("Server: " + message); } System.out.println("Server stopped."); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 客户端: ```java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); System.out.println("Connected to server."); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String message; while ((message = reader.readLine()) != null) { out.println(message); if (message.equals("拜拜")) { break; } System.out.println("Server: " + in.readLine()); } System.out.println("Disconnected from server."); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 当客户端服务端发送“拜拜”消息时,程序会结束运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木心Fx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值