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

JavaSE网络编程

JavaSE网络编程

  • 一、基本概念
  • 二、常用类
  • 三、使用方法
    • 1、创建服务器端Socket
    • 2、创建客户端Socket
    • 3、创建URL对象


JavaSE中的网络编程模块提供了一套完整的网络编程接口,可以方便地实现各种基于网络的应用程序。本文将介绍JavaSE中网络编程模块的基本知识、常用类以及使用方法。

一、基本概念

在进行JavaSE中的网络编程时,需要了解以下基本概念:

  • IP地址:用于唯一标识网络中的设备。
  • 端口号:用于唯一标识设备中的应用程序。
  • 协议:定义了网络中设备之间通信的规则。
  • Socket:是网络编程中的基本概念,它代表了两个设备之间的连接。

二、常用类

JavaSE中网络编程模块提供了以下常用类:

  • InetAddress:用于表示IP地址。
  • ServerSocket:用于创建服务器端Socket。
  • Socket:用于创建客户端Socket。
  • URL:用于表示一个URL地址。

三、使用方法

1、创建服务器端Socket

在JavaSE中创建服务器端Socket的步骤如下:

  • 使用ServerSocket类创建一个服务器端Socket对象。
  • 使用accept()方法等待客户端连接。
  • 使用getInputStream()方法读取客户端发送的数据。
  • 使用getOutputStream()方法向客户端发送数据。
  • 使用close()方法关闭服务器端Socket。
try {ServerSocket serverSocket = new ServerSocket(8888);Socket socket = serverSocket.accept();InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream();byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}socket.close();
} catch (IOException e) {e.printStackTrace();
}

2、创建客户端Socket

在JavaSE中创建客户端Socket的步骤如下:

  • 使用Socket类创建一个客户端Socket对象。
  • 使用getInputStream()方法读取服务器端发送的数据。
  • 使用getOutputStream()方法向服务器端发送数据。
  • 使用close()方法关闭客户端Socket。
try {Socket socket = new Socket("localhost", 8888);InputStream is = socket.getInputStream();OutputStream os = socket.getOutputStream();String message = "Hello World";os.write(message.getBytes());byte[] buffer = new byte[1024];int len = is.read(buffer);String response = new String(buffer, 0, len);System.out.println(response);socket.close();
} catch (IOException e) {e.printStackTrace();
}

3、创建URL对象

在JavaSE中创建URL对象的步骤如下:

  • 使用URL类创建一个URL对象。
  • 使用openConnection()方法打开URL的连接。
  • 使用getInputStream()方法读取URL地址对应的数据。
  • 使用close()方法关闭连接。
try {URL url = new URL("http://www.example.com");HttpURLConnection connection = (HttpURLConnection) url.openConnection();InputStream is = connection.getInputStream();byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {System.out.println(new String(buffer, 0, len));
}connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
http://www.lryc.cn/news/30690.html

相关文章:

  • 9万字“联、管、用”三位一体雪亮工程整体建设方案
  • springboot自动装配原理
  • Docker学习(二十)什么是分层存储?
  • Vue组件进阶(动态组件,组件缓存,组件插槽,具名插槽,作用域插槽)与自定义指令
  • 僵尸进程与孤儿进程
  • 基于注解@Transactional事务基本用法
  • Go项目(商品微服务-2)
  • 无头盔PICO-unity开发日记1(抓取、传送)
  • Material3设计指南笔记
  • JavaWeb--会话技术
  • Git图解-为啥是Git?怎么装?
  • HTML 框架
  • Rust特征(Trait)
  • 详解七大排序算法
  • Vue+ECharts实现可视化大屏
  • 百度Apollo规划算法——轨迹拼接
  • 6. unity之脚本
  • flink-note笔记:flink-state模块中broadcast state(广播状态)解析
  • vue——预览PDF
  • 数据库复习
  • vscode插件推荐
  • THUPC2023初赛总结
  • unity知识点小结02
  • 总线(四)Modbus总线 协议
  • Cadence Allegro 导出Component Report详解
  • 程序猿成长之路之密码学篇-DES算法详解
  • maven生命周期、阶段与默认绑定插件梳理
  • 【数学基础】
  • 网上电子商城的设计与实现
  • 2023thupc总结