当前位置: 首页 > news >正文

在本地模拟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("客户端退出~");}
}

 

相关文章:

  • ChatGPT专业术语及有效使用方法概述
  • 城市群(Megalopolis)/城际(inter-city)OD相关研究即Open Access数据集调研
  • java面试--线程总结
  • openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户
  • Powershell脚本自动备份dhcp数据库
  • 【爬虫】python打包可执行程序(ui界面制作完成后)
  • Maven第三章:IDEA集成与常见问题
  • Jmeter性能测试:高并发分布式性能测试
  • Rust所有权
  • Linux UWB Stack实现——FiRa会话状态机
  • Linux下导出dump文件(Oracle和PG数据)
  • Python第三方库安装——使用vscode、pycharm安装Python第三方库
  • C语言 位操作符 >> << | ^
  • 0基础学习PyFlink——用户自定义函数之UDTAF
  • 免登陆 同步脚本 zookeeper kafka集群详细安装步骤
  • #Java异常处理
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • create-react-app项目添加less配置
  • CSS3 变换
  • CSS居中完全指南——构建CSS居中决策树
  • JavaScript对象详解
  • Laravel 菜鸟晋级之路
  • vue-loader 源码解析系列之 selector
  • 阿里云前端周刊 - 第 26 期
  • 从伪并行的 Python 多线程说起
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端代码风格自动化系列(二)之Commitlint
  • 微信小程序--------语音识别(前端自己也能玩)
  • 一道面试题引发的“血案”
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 《码出高效》学习笔记与书中错误记录
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 从如何停掉 Promise 链说起
  • ​iOS安全加固方法及实现
  • ​Spring Boot 分片上传文件
  • # C++之functional库用法整理
  • #includecmath
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (20050108)又读《平凡的世界》
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (办公)springboot配置aop处理请求.
  • (第27天)Oracle 数据泵转换分区表
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (九)One-Wire总线-DS18B20
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net访问oracle数据库性能问题
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET企业级应用架构设计系列之开场白
  • .Net中的设计模式——Factory Method模式
  • .Net中间语言BeforeFieldInit
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑