【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )

简介: 【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )

文章目录

I Socket API 简介

II ServerSocket API 简介

III Socket 数据交互

IV Socket 客户端操作流程

V Socket 服务器端操作流程

VI Socket 与 进程



I Socket API 简介


1. Socket 是客户端套接字的类 ;


2. Socket 构造方法 : 调用 Socket() , 创建 Socket 套接字对象 ; 创建之后 , 设置都是默认值 , 可以调用各种设置方法设置 Socket 对象的参数 ;


3. 端口绑定 : bind() , 将某个本地 IP 地址和端口号绑定到 Socket 对象上 ;


4. 连接服务器 : connect() , 连接服务器端 ;




II ServerSocket API 简介


1. ServerSocket 是服务器端套接字类 ;


2. 接受客户端连接 : 调用 accept() , 接受客户端的连接 , 该连接时新的连接 ;


① 阻塞状态 : 该方法调用之后 , 会将当前线程阻塞 , 直到客户端的连接到达; 因此需要单独开启一条线程用来建立与客户端的连接 ;

② 等待连接阻塞时间设置 : 默认的等待阻塞的时间是无限长的 ;

③ 自动创建 Socket 对象 : 客户端连接到达后 , 服务器端会自动创建一个 Socket 对象 , 用于与客户端进行数据交互操作 ;



III Socket 数据交互


1. 写出数据 : 先获取 Socket 输出流 , 调用 write() 相关方法 , 将数据写出到 Socket 输出流中 ;


2. 读取数据 : 先获取 Socket 输入流 , 调用 read() 相关方法 , 将数据读取到 Socket 输入流中 ;




IV Socket 客户端操作流程


1. 客户端创建 Socket : 调用 Socket() 构造方法创建套接字, 此时创建的是空的套接字 ;


2. 绑定本地套接字 : 调用 Socket 对象的 bind() 方法将本地的 IP 地址和端口号绑定到上面创建的套接字上 ;


3. 连接远程客户端 : 调用 Socket 对象的 connect() 方法连接服务器端 , 连接失败直接抛出异常 , 连接成功就可以进行从 Socket 对象中获取输入输出流 , 与服务器端进行数据交互了 ;




V Socket 服务器端操作流程


1. 创建服务器套接字 : 调用 ServerSocket() 构造方法 , 创建 ServerSocket 对象 ;


2. 绑定 : ServerSocket 对象也需要绑定本地的 IP 地址和端口号 ;


3. 等待连接 : 调用 accept() 方法等待客户端连接到达 , 此时会阻塞线程 , 等待连接 ; 如果客户端连接到达 , 就可以与自动创建的 Socket 对象进行数据交互 ;




VI Socket 与 进程


1. 前提 : 应用的每个进程都可以创建一个或多个 Socket 连接 ;


2. 进程间通信 : 不同的进程绑定不同的端口号 , 可以通过 Socket 连接进行进程间通信 ;


目录
相关文章
|
4月前
|
JSON 移动开发 网络协议
Java网络编程:Socket通信与HTTP客户端
本文全面讲解Java网络编程,涵盖TCP与UDP协议区别、Socket编程、HTTP客户端开发及实战案例,助你掌握实时通信、文件传输、聊天应用等场景,附性能优化与面试高频问题解析。
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
160 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
176 1
|
2月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
317 0
|
5月前
|
网络协议 API
区分TCP/IP、HTTP、Socket三者的差异
HTTP关注于应用层的协议规范,而Socket关注于为应用程序提供编程中的网络功能,这些功能本身是建立在底层的TCP/IP协议之上;HTTP是更高层次的抽象,定义了如何包装数据,而TCP/IP定义了如何传送数据,Socket则是两者之间在程序中的桥梁,负责实现细节。在实际应用中,通常HTTP通信也是通过Socket来完成,因为HTTP仅是具体内容的封装形式,而Socket则是传送方式的实现形式。
485 16
|
6月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
8月前
|
存储 网络协议 API
Cpp网络编程Winsock API
本文详细介绍了使用Winsock API进行C++网络编程的过程,通过具体实例实现了一个基于TCP协议的C/S架构通信demo。文章从服务端与客户端两方面展开,涵盖网络库初始化、套接字创建、绑定IP与端口、监听与连接、数据收发到关闭连接等关键步骤。重点解析了`WSAStartup`、`socket`、`bind`、`listen`、`accept`、`connect`、`send`和`recv`等函数的使用方法及注意事项,并对比了标准库与Winsock库在链接时的区别。适合初学者了解Winsock网络编程基础。
342 35
|
9月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
325 12
|
9月前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
352 23
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解