21xrx.com
2024-12-22 23:59:22 Sunday
登录
文章检索 我的文章 写文章
Java编写简单聊天程序代码 实现网络通信
2023-06-15 11:13:12 深夜i     --     --
Java Socket 聊天程序

在日常生活中,网络通信已经成为了不可或缺的一部分。而在网络通信中,聊天是一个比较常见的需求。Java作为一种应用范围广泛的编程语言,自然也可以用来编写简单的聊天程序。本文将介绍如何使用Java编写简单聊天程序的代码,并实现网络通信。首先我们需要了解一些基础知识。

一、Socket

在Java中,网络通信是通过Socket实现的。Socket通俗的说就是一种插座或者管子,位于不同的计算机上。它可以使两个计算机之间通过网络连接起来,进行数据的传输和交换。

二、服务器端和客户端

在网络通信中,一般分为服务器端和客户端。服务器端一般绑定一个固定的端口,等待客户端的连接请求。客户端连接服务器端之后,服务器端会为每一次连接生成一个新的Socket,用于客户端和服务器之间的通信。

三、编写聊天程序

首先我们先来实现服务器端的代码。具体实现过程如下:

1.创建一个ServerSocket对象,并设置绑定的端口号。

2.等待客户端连接,一旦有客户端请求连接,就生成一个新的Socket。

3.创建InputStream和OutputStream对象,用于接收和发送数据。

4.循环接收客户端发送的数据,进行相应的业务处理。

下面是一个简单的服务器端代码:


import java.io.*;

import java.net.*;

public class ChatServer {

  public static void main(String[] args) {

    ServerSocket server = null;

    Socket socket = null;

    String line = null;

    BufferedReader is = null;

    PrintWriter os = null;

    try {

      server = new ServerSocket(9999);

    } catch (IOException e) {

      e.printStackTrace();

    }

    try {

      socket = server.accept();

      is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

      os = new PrintWriter(socket.getOutputStream());

    } catch (IOException e) {

      System.out.println("Accept failed");

      System.exit(1);

    }

    System.out.println("Server started...");

    try {

      line = is.readLine();

      while (line.compareTo("quit") != 0) {

        os.println(line);

        os.flush();

        System.out.println("Client: " + line);

        line = is.readLine();

      }

    } catch (IOException e) {

      System.out.println("Read failed");

      System.exit(1);

    }

    try {

      os.close();

      is.close();

      socket.close();

      server.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

接下来我们来实现客户端的代码。具体实现过程如下:

1.创建一个Socket对象,并连接到服务端的IP地址和端口号。

2.创建InputStream和OutputStream对象,用于接收和发送数据。

3.循环向服务端发送数据,并接收服务端返回的数据。

下面是一个简单的客户端代码:


import java.io.*;

import java.net.*;

public class ChatClient {

  public static void main(String[] args) {

    Socket socket = null;

    BufferedReader is = null;

    PrintWriter os = null;

    BufferedReader sin = null;

    try {

      socket = new Socket("localhost", 9999);

      is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

      os = new PrintWriter(socket.getOutputStream());

      sin = new BufferedReader(new InputStreamReader(System.in));

    } catch (IOException e) {

      e.printStackTrace();

    }

    System.out.println("Client started...");

    try {

      String line = sin.readLine();

      while (line.compareTo("quit") != 0) {

        os.println(line);

        os.flush();

        System.out.println("Server: " + is.readLine());

        line = sin.readLine();

      }

    } catch (IOException e) {

      System.out.println("Read failed");

      System.exit(1);

    }

    try {

      os.close();

      is.close();

      socket.close();

      sin.close();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

}

四、总结

通过上面的介绍,我们可以看出Java编写简单聊天程序代码是很容易的,只需要了解Socket的相关知识就可以实现网络通信了。当然,聊天程序的实现并不仅限于上面的代码,还有很多其他的实现方式。总之,掌握了这些知识之后,相信聊天程序的编写对你来说是小菜一碟。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复