java网络通信技术之简单聊天小程序

这里是关于“Java网络通信技术之简单聊天小程序”的完整攻略。

简介

本篇攻略将为大家介绍如何使用Java网络通信技术开发简单聊天小程序。

聊天小程序主要由客户端和服务端两个部分组成,它们之间通过网络通信进行交互。在Java中,可以使用Socket实现网络通信。

下面我们将由客户端和服务端两个方面详细讲解。

客户端

客户端主要负责向服务端发送信息,并接收服务端的返回信息。

首先,客户端需要创建一个Socket对象,指定服务器IP地址和端口号:

Socket socket = new Socket("127.0.0.1", 8888);

通过这个Socket对象,我们就可以向服务器发送信息:

OutputStream os = socket.getOutputStream();
String message = "Hello Server!";
os.write(message.getBytes());

同样,客户端也可以通过Socket对象接收服务端返回的信息:

InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("Received message: " + message);

服务端

服务端主要负责接收客户端发送来的信息,并向客户端返回信息。

服务端需要创建一个ServerSocket对象,并指定端口号:

ServerSocket serverSocket = new ServerSocket(8888);

服务端可以通过ServerSocket对象接收客户端的连接请求:

Socket socket = serverSocket.accept();

一旦服务端接收到客户端的连接请求,就可以通过Socket对象接收客户端发送过来的信息:

InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int length = is.read(buffer);
String message = new String(buffer, 0, length);
System.out.println("Received message: " + message);

服务端也可以通过Socket对象向客户端发送信息:

OutputStream os = socket.getOutputStream();
String message = "Hello Client!";
os.write(message.getBytes());

示例说明

下面给出两个代码示例来帮助理解:

示例一

客户端

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws Exception {
        Socket socket = new Socket("127.0.0.1", 8888);
        OutputStream os = socket.getOutputStream();
        String message = "Hello Server!";
        os.write(message.getBytes());

        InputStream is = socket.getInputStream();
        byte[] buffer = new byte[1024];
        int length = is.read(buffer);
        String response = new String(buffer, 0, length);
        System.out.println("Received message from server: " + response);

        socket.close();
    }
}

服务端

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(8888);

        Socket socket = serverSocket.accept();

        InputStream is = socket.getInputStream();
        byte[] buffer = new byte[1024];
        int length = is.read(buffer);
        String message = new String(buffer, 0, length);
        System.out.println("Received message from client: " + message);

        OutputStream os = socket.getOutputStream();
        String response = "Hello Client!";
        os.write(response.getBytes());

        socket.close();
        serverSocket.close();
    }
}

示例二

客户端

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws Exception {
        Socket socket = new Socket("127.0.0.1", 8888);
        OutputStream os = socket.getOutputStream();
        String message = "How are you?";
        os.write(message.getBytes());

        InputStream is = socket.getInputStream();
        byte[] buffer = new byte[1024];
        int length = is.read(buffer);
        String response = new String(buffer, 0, length);
        System.out.println("Received message from server: " + response);

        socket.close();
    }
}

服务端

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(8888);

        Socket socket = serverSocket.accept();

        InputStream is = socket.getInputStream();
        byte[] buffer = new byte[1024];
        int length = is.read(buffer);
        String message = new String(buffer, 0, length);
        System.out.println("Received message from client: " + message);

        OutputStream os = socket.getOutputStream();
        String response = "I'm fine!";
        os.write(response.getBytes());

        socket.close();
        serverSocket.close();
    }
}

以上就是关于Java网络通信技术之简单聊天小程序的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java网络通信技术之简单聊天小程序 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Java Collections类操作集合详解

    Java Collections类操作集合详解 1. Introduction Java中的Collections类是操作集合的工具类,它提供了许多有用的静态方法来完成集合的一些常见操作。这些方法包括排序,搜索,插入,删除和更新等。在介绍Collections类的常见操作之前,我们先来认识一下Java中的集合类型。 在Java中有两种主要的集合类型:List…

    Java 2023年5月26日
    00
  • Spring Boot Maven 打包可执行Jar文件的实现方法

    实现Spring Boot Maven打包成可执行Jar文件的实现方法,主要有两种。 1. 使用Spring Boot Maven插件打包 首先,需要在pom.xml文件中,引入Spring Boot Maven插件,具体如下: <build> … <plugins> … <plugin> <groupId&…

    Java 2023年5月20日
    00
  • 浅谈SpringCloud的微服务架构组件

    关于“浅谈SpringCloud的微服务架构组件”的完整攻略,我可以从以下几个方面进行讲解: 一、什么是微服务架构 微服务架构是一种以服务化思想为核心的分布式系统架构,用于将单个应用程序拆分为一组较小且更独立的服务,每个服务都可以独立部署、升级和扩展,提高了系统的可维护性、可扩展性和弹性。微服务架构的主要优势包括: 每个服务都可以独立部署和伸缩 不同的服务可…

    Java 2023年5月20日
    00
  • Velocity Parse()函数引发的本地包含漏洞及利用方法

    Velocity Parse()函数是Apache Velocity模板引擎中非常常用的函数之一,它的作用是将一个字符串解析成一个Velocity模板,在模板中可以使用 $var形式的语法来代替具体变量或表达式。 然而,如果在解析字符串时未对用户输入进行过滤和验证,就会产生本地文件包含(LFI)攻击的漏洞。攻击者可以利用此漏洞读取服务器中的任意文件,甚至可以…

    Java 2023年5月20日
    00
  • 如何使用Java代码优化工具?

    如何使用Java代码优化工具? Java代码的优化可以提高程序的效率和性能,使得程序的运行更加流畅。下面是使用Java代码优化工具的详细步骤: 1. 选择合适的工具 市面上有很多Java代码优化工具,例如Eclipse JDT、NetBeans Profiler、JProfiler等。每个工具都有其独特的特点和优劣势,所以选择合适的工具非常重要。 2. 分析…

    Java 2023年5月11日
    00
  • 小程序登录/注册页面设计的实现代码

    下面我将为你详细讲解小程序登录/注册页面设计的实现代码,包含完整的攻略和示例说明。 第一步:创建登录/注册页面 登录/注册页面是小程序中非常重要的页面,需要设计合理、美观。可以使用 wx.navigateTo API 跳转到登录/注册页面,以下是页面代码示例: <!– pages/login-register/login-register.wxml …

    Java 2023年5月23日
    00
  • Java日常练习题,每天进步一点点(57)

    题目:求一个二叉树的右下角结点的值。 思路 先按照层次遍历的方式,遍历整棵树,将每一层最后一个结点的值保存下来,最后返回最后一层的最后一个结点的值即可。 代码实现 private int lastVal = 0; public int findBottomLeftValue(TreeNode root) { // 用队列保存待遍历的结点 Queue<T…

    Java 2023年5月23日
    00
  • Java面试题冲刺第二十六天–实战编程2

    《Java面试题冲刺第二十六天–实战编程2》是一篇介绍Java编程实战题的文章,主要内容包括实现一个电商系统购物车功能,实现一个基于LinkedList实现的栈。 实现一个电商系统购物车功能 这道题目要求我们实现一个电商网站的购物车功能,具体要求如下: 添加商品到购物车 从购物车中删除商品 修改购物车中商品的数量 清空购物车 查看购物车中的商品列表 为了实…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部