当前位置: 首页 > 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("客户端退出~");}
}

 

http://www.lryc.cn/news/212554.html

相关文章:

  • 香港科技大学广州|可持续能源与环境学域博士招生宣讲会—东南大学专场!!!(暨全额奖学金政策)
  • [Leetcode] 0108. 将有序数组转换为二叉搜索树
  • Pandas数据导入和导出:CSV、Excel、MySQL、JSON
  • 第16期 | GPTSecurity周报
  • 省钱兄短剧短视频视频滑动播放模块源码支持微信小程序h5安卓IOS
  • SDRAM学习笔记(MT48LC16M16A2,w9812g6kh)
  • ARM 学习笔记3 STM32G4 定时器相关资料整理
  • LeetCode 917 仅仅反转字母 简单
  • JAVA深化篇_25—— IO流章节全网最全总结(附详细思维导图)
  • 易基因:ChIP-seq等揭示BRWD3调控KDM5活性以维持H3K4甲基化水平的表观机制|PNAS
  • C++深度优先(DFS)算法的应用:收集所有金币可获得的最大积分
  • uniapp中APP端使用echarts用formatter设置y轴保留2位小数点不生效
  • 无糖茶饮三十年,从无人问津到人手一瓶
  • 面向Three.js开发者的3D自动纹理化开发包
  • 数字孪生技术与VR:创造数字未来
  • 系统架构设计师-第15章-面向服务架构设计理论与实践-软考学习笔记
  • 为什么我觉得Rust比C++复杂得多?
  • python sqlalchemy(ORM)- 03 增删改查
  • Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(上)
  • 学习gorm:彻底弄懂Find、Take、First和Last函数的区别
  • 796. 子矩阵的和(二维前缀和)
  • 利用ChatGPT进行股票走势分析
  • 万字解析设计模式之单例模式
  • vue2.x 二次封装element ui 中的el-dialog
  • ssh连接Ubuntu虚拟机出现connection reset by ip地址 port 22怎么解决
  • 树莓派4B安装ffmpeg
  • LeetCode|动态规划|1035. 不相交的线 、53. 最大子数组和
  • 一体式IO模块:汽车行业的数字化转型助推器
  • OpenCV官方教程中文版 —— Hough 直线变换
  • 【Axure高保真原型】百分比堆叠柱状图