在本地模拟C/S,Socket套接字的使用

public class SocketTCP01Server {public static void main(String[] args) throws IOException {/**1.在本机的 9999 端口监听 ,等待连接细节: 要求在本机没有其他服务在监听999细节:这个ServerSocket 可以通过accept()返回多个Socket[多个客户端连接服务求的并发]*/ServerSocket serverSocket = new ServerSocket(9999);System.out.println("服务端,在9999端口监听,等待连接...");/**当没有客户端连接9999端口时,在9999端口阻塞,等待连接*如果有客户端连接,则会返回Socket对象,程序连接*/Socket socket =serverSocket.accept();System.out.println("Socket="+socket.getClass());/**3.通过socket.getInputStream()获取* 客户端写入到数据通道的数据,显示*/InputStream inputStream = socket.getInputStream();//4.IO获取byte[] buf =new byte[1024];int readlen = 0;while((readlen=inputStream.read(buf))!=-1){System.out.println(new String(buf,0,readlen));//根据实际}inputStream.close();socket.close();serverSocket.close();System.out.println("服务器端退出~");}
}
//客户端,发送“hello,server”给服务端
public class SocketTCP01Client {public static void main(String[] args) throws IOException {//1.连接服务器(ip,端口)Socket socket = new Socket(InetAddress.getLocalHost(),9999);System.out.println("客户端 socekt返回="+socket.getClass());//2.连接上后,生成Socket,通过socket.getOutputStream()//得到 和 socket 对象关联的输出流对象OutputStream outputStream = socket.getOutputStream();//3.通过输出流,写入数据到 数据通道outputStream.write("hello server".getBytes());//4.关闭流对象和socket,必须关闭outputStream.close();socket.close();System.out.println("客户端退出~");}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网关概念及java项目中用使用网关场景

网关(Gateway)是一个在网络系统中起到入口和出口的作用的组件或服务。它位于客户端和服务器之间,负责处理进出网络的流量,实现一些重要的功能,如路由、安全认证、协议转换等。 网关在网络架构中扮演了多种角色&#x…

使用Jenkins触发gitlab的webhook

满足条件: 首先手动构建可以完成构建 例如: 打开项目点击配置 在“Build Triggers”栏勾选,Build when a change is pushed to GitLab. GitLab webhook ;如下 复制URL链接,我的链接是:http://192.168.44…

TypeScript - 字符串的字面类型

啥是字面量类型 字面量类型,是限制了一个字符串变量的取值范围只能某几个固定字符串中的一个。 我感觉 与枚举类型有异曲同工之妙。 字符串字面量类型有啥用 没啥用。 就是来限制字符串变量不能随便赋值的。 定义一个我看看 让你读书,但是只有四本书可以…

设计模式之门面模式

前言 什么是门面模式 门面模式是一种结构型设计模式,它提供了一个统一的接口,用来访问子系统中的一群接口。它定义了一个高层接口,让子系统更容易使用。这种模式常用于将一个复杂的子系统封装成一个简单的接口,使得客户端可以方…

Java 枚举类型与泛型-第13章

Java 枚举类型与泛型-第13章 1.枚举类型 枚举类型是一种特殊的数据类型,用于表示一组有限的命名常量。枚举类型可以帮助您更清晰地定义和管理相关常量,并提供类型安全性。 1.1使用枚举类型设置常量 枚举类型是一种非常方便的方式来设置常量。我们可以…

JavaScript简介

JavaScript是一种高级的、解释型的编程语言,用于在网页上实现交互和动态效果。它广泛应用于前端开发中,是构建现代Web应用的核心技术之一。JavaScript可以直接嵌入到HTML页面中,并通过浏览器解释执行。 历史与发展 JavaScript由Netscape公司…

基于51单片机的温度测量报警系统的设计与制作

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、实习目的二、实习任务2.1 设计温度测量报警系统硬件电路2.2 温度测量报警系统软件编程、仿真与调试;2.3 完成温度测量报警系统的实物制作与调试…

从一线到联合,克唑替尼在ALK阳性NSCLC治疗新旅程【医游记】

(图片来源于网络) 一、克唑替尼简介 克唑替尼(Crizotinib),商品名赛可瑞,是一款口服服用的小分子酪氨酸激酶抑制剂。克唑替尼最早于2011年被美国FDA批准用于ALK阳性晚期NSCLC的治疗。其主要靶点为间变淋巴瘤激酶(ALK)和ROS1(ROS proto-oncogene 1)融合…

记录:获取windows当前登录的用户信息

参考: 获取列表:用户信息 作为系统帐户运行的Windows服务如何获得当前用户的\AppData\Local\专用文件夹?-腾讯云开发者社区-腾讯云 (tencent.com) 获取当前账号:域\用户名 c#如何从 .NET 中的 Windows 服务获取当前记录的用户…

3.1、Linux的vim编辑器

个人主页:Lei宝啊 愿所有美好如期而遇 目录 前言: 插入模式 底行模式 命令模式 前言: 没有进行配置的vim编辑器在写代码时和记事本没什么两样,所以最开始我们可以先下载一个插件,在Linux下两行指令的问题&…

视频格式高效转换:MP4视频批量转MKV格式的方法

随着数字媒体技术的不断发展,视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备,因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中,我们将重点介绍如何运用云炫AI智剪高…

Apollo安装全攻略

安装方式 概述快速安装安装基础软件安装 Ubuntu Linux安装 Docker Engine 安装 Apollo 环境管理工具获取 GPU 支持(可选)创建和进入 Apollo 环境容器 源码安装安装 Linux 系统(可选)安装 NVIDIA GPU 驱动安装 docker下载并编译 Ap…

go中网络流量分析gopacket库的使用

一、前言 近来,笔者想学习下用go构造tcp数据包,这里涉及到gopacket库的使用,故这里记录下关于gopacket库的一些学习记录 二、介绍 gopacket 是 Go 语言的网络数据包处理库,它提供了方便的 API 来读取、分析、修改和生成网络数据包…

【Linux】安装配置解决CentosMobaXterm的使用及Linux常用命令命令模式

目录 一、介绍 1. 背景 2. 讲述&功能 二、Centos安装配置&MobaXterm 1. 创建 2. 安装 3. 配置 4. MobaXterm使用 三、Linux常用命令&模式 1. 常用命令 2. 三种模式 3. 命令使用&换源 4. 拍照备份 一、介绍 1. 背景 CentOS的背景可以追溯到200…

STM32F4X SDIO(二) SDIO协议

上一节简单介绍了SD卡的分类,本节将会介绍SD卡的通信协议,也就是SDIO协议。 STM32F4X SDIO(二)SDIO协议 SD 卡管脚和寄存器SD卡管脚分布SD卡通信协议SD卡寄存器SD卡内部结构 SDIO总线SDIO总线拓扑SDIO总线协议SDIO协议的基本结构…

java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)

一、通过testList.stream().collect(Collectors.joining(",")) &#xff0c;通过流转换&#xff0c;将list转为逗号隔开字符串 List<String> testList new ArrayList<>(); testList.add("test1"); testList.add("test2"); testList…

Python的比较运算符查询表

据个人的编程开发经验&#xff0c;Python的比较运算符最常于条件判断&#xff0c;而条件判断是python编程中最常用的语法之一&#xff0c;与for或while的循环一样&#xff0c;功能十分强大&#xff01; 在机器学习当中&#xff0c;或深度学习当中&#xff0c;在运用算法对统计…

ArcGIS笔记12_ArcGIS搜索工具没法用?ArcGIS运行很慢很卡?

本文目录 前言Step 1 ArcGIS搜索工具没法用Step 2 ArcGIS运行很慢很卡 前言 这是笔者最近遇到的两个小问题&#xff0c;新换了台式机&#xff0c;安装上ArcGIS后发现搜索工具没法用&#xff0c;而且感觉还不如原来笔记本运行的流畅&#xff0c;加载图层很慢&#xff0c;编辑要…

web - 前段三剑客

目录 前言 一. HTML 常用标签演示 图片标签 ​编辑 表格标签(重点) ​编辑 表单标签 (重点) 布局标签 其余标签 二. CSS 2.1 . css的三种引入方式 2.2 . 三大选择器 2.3 . css样式 - 浮动 2.4 . css样式 - 定位 1.static 2.absolute(绝对位置) 3.relavite(相…

【PythonRS】Pyrsgis库安装+基础函数使用教程

pyrsgis库是一个用于处理地理信息系统(GIS)数据的Python库。它提供了一组功能强大的工具&#xff0c;可以帮助开发人员使用Python语言创建、处理、分析和可视化GIS数据。通过使用pyrsgis库&#xff0c;开发人员可以更轻松地理解和利用地理信息。 pyrsgis库包含了许多常见的GIS操…