Java程序设计:Java 网络编程实验

news/2024/9/23 14:33:30/

目录

1 实验名称

2 实验目的

3 实验源代码

4 实验运行结果图

5 总结


1 实验名称

       Java 网络编程实验

2 实验目的

       继续熟练掌握在eclipse中调试代码

       掌握Java 网络编程中的基本概念及使用方法

       掌握TCP协议和Socket套接字编程的使用

3 实验源代码

java">package Text01.NetworkProgramming;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;public class TCPServer {private static final int PORT = 8888;public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(PORT);System.out.println("服务器已启动...");Socket socket = serverSocket.accept();System.out.println("客户端" + socket.getInetAddress().getHostAddress() + "已连接...");BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));String msg = null;while ((msg = reader.readLine()) != null) {System.out.println("收到客户端消息:" + msg);}reader.close();socket.close();serverSocket.close();} catch (Exception e) {e.printStackTrace();}}
}
package Text01.NetworkProgramming;import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.net.Socket;public class TCPClient {private static final String SERVER_IP = "127.0.0.1";private static final int SERVER_PORT = 8888;public static void main(String[] args) {try {Socket socket = new Socket(SERVER_IP, SERVER_PORT);System.out.println("连接到服务器 " + SERVER_IP + ":" + SERVER_PORT);BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));writer.write("Hello, World!");writer.newLine();writer.flush();writer.close();socket.close();} catch (Exception e) {e.printStackTrace();}}
}

4 实验运行结果图

5 总结

       此次实验步骤:首先创建服务器,Java中可以通过ServerSocket类来创建服务器,并监听客户端的连接请求;此次实验中,使用ServerSocket类创建了一个简单的服务器,并处理了客户端连接请求。紧接着处理客户端请求,一旦客户端连接成功,服务器需要对于客户端的请求进行响应,这可以通过Socket类来实现;此次实验中,使用Socket类处理了客户端发送的消息,并向客户端返回相应消息。然后是多线程服务器,对于有多个客户端同时连接的情况,可以使用多线程服务器来提高并发处理能力;此次实验中,使用多线程服务器来处理多个客户端的连接请求,实现了并发处理功能。最后是客户端编程,Java中可以使用Socket类来实现客户端编程,与服务器进行通信;此次实验中,也实现了一个简单的客户端程序,并与服务器进行通信。


http://www.ppmy.cn/news/1505682.html

相关文章

redis的数据结构与对象

简单动态字符串 文章目录 简单动态字符串SDS的定义SDS的结构图示结构SDS字段解析SDS的特点 SDS和字符串的区别常数复杂度获取字符串的长度杜绝缓冲区的溢出减少修改字符串时的内存分配次数二进制安全兼容部分c字符串函数总结 链表链表和链表节点的实现链表节点(list…

Nginx统计PV、NV

目录 PV 分析 UV 分析 在 Nginx 的配置文件中设置 access_log 主要涉及到以下几个方面: 以下是一个基本的 access_log 配置示例: 使用命令行工具对日志进行基本分析: 后端记录 对于 nginx 的 access.log 日志,我们可以根据日…

STM32——外部中断(EXTI)

目录 前言 一、外部中断基础知识 二、使用步骤 三、固件库实现 四、STM32CubeMX实现 总结 前言 外部中断(External Interrupt,简称EXTI)是微控制器用于响应外部事件的一种方式,当外部事件发生时(如按键按下、传感器信号…

请转告HPC计算AI计算单位,选对存储事半功倍

U.2 NVMe全闪混合统一存储GS 5000U是Infortrend产品中一款高性能机型。得益于搭载强劲的第五代IntelXeon处理器,以及支持PCIe 5.0、NVMe-oF、100GbE等多种特点,GS 5000U单台块级性能可达50 GB/s的读、20 GB/s的写,以及1300K的IOPS&#xff1b…

kafka 消费者注册过程

在Kafka中,消费者需要找到组协调器(Group Coordinator)来加入消费者组并进行分区分配。查找组协调器的过程如下: 1. 初始化消费者: 创建KafkaConsumer实例并加载配置参数。 2. 发送FindCoordinator请求:…

React18+Vite+Eectron从入门到实战系列之一环境安装篇

如果我们的技术栈是react,也想要用electron来开发一个桌面的多端应用该怎么做呢?这篇文章选择了react的技术栈,讲解了环境的初始化步骤 实现效果 步骤 创建 react 项目 npm create vitelatest my-react-app安装依赖 cd my-react-app npm i…

ClickHouse:单机安装

目录 一、ClickHouse介绍 二、安装ClickHouse 2.1安装要求 2.2单机安装 2.3修改配置文件(可选) 2.4升级软件 三、使用ClickHouse 3.1连接ClickHouse 3.2 执行SQL 一、ClickHouse介绍 ClickHouse是由Yandex开源的一个高性能、面向列的SQL数据库管理系统(DBM…

LearnOpenGL-光照章节学习笔记

LearnOpenGL-光照章节学习笔记 颜色创建一个光照场景 基础光照一、环境光照二、漫反射光照三、镜面反射 材质光照贴图一、漫反射贴图二、镜面光贴图三、放射光贴图 投光物一、平行光二、点光源衰减实现 三、聚光灯平滑边缘 多光源一、平行光(定向光)二、…