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

  • Post author:
  • Post category:java


//郑州轻工业大学

//题号:实验四 第一题

//题目:使用基于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改一天!

在这里插入图片描述



版权声明:本文为muMason原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。