【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 连接进行进程间通信 ;
【Java 网络编程】TCP API 简介 ( Socket | ServerSocket )相关推荐
- java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计
[JAVA 网络编程 TCP/IP.Socket 和协议设计] TCP/IP 协议简介 IP 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成 ...
- Java网络编程 ---- TCP 网络通信编程
视频:[零基础 快速学Java]韩顺平 零基础30天学会Java 文章目录 1. Socket 2. TCP 网络通信编程 3. 应用案例 1(使用字节流) 4. 应用案例 2(使用字节流) 5. 应 ...
- Java网络编程---TCP通信
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信 Java对基于TCP协议的 ...
- Java网络编程(一)Socket套接字
一.基础知识 1.TCP:传输控制协议. 2.UDP:用户数据报协议. 二.IP地址封装 1.InetAddress类的常用方法 getLocalHost() 返回本地主机的InetAddress对象 ...
- java网络编程TCP传输—流操作—拿到源后的写入动作
在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充···· 1.利用byte数组作为一个缓冲区进行读写 客户端上传 1 //获取sock ...
- java网络编程--TCP程序设计
一,本章目标 了解Socket和ServerSocker类的作用 掌握ECHO程序开发 将多线程应用在TCP程序上实现多用户操作 二,具体内容 在java网络程序中,客户端只要符合连接的通讯协议,那么 ...
- java网络编程 TCP程序
在java中,使用Socket完成TCP(传输控制协议)程序开发,使用此类可以方便地建立可靠的,双向的,持续的,点对点通信连接 服务端: ServerSocket 程序段:Socket Serv ...
- Java网络编程 - TCP通信
文章目录 TCP通信 快速入门(一发一收) 编写客户端代码 编写服务器代码 多发多收 多发多收(同时接受多个客户端) 线程池优化 TCP通信 快速入门(一发一收) TCP协议回顾: TCP是一种面向连 ...
- 2.Java 网络编程TCP通讯例子 双向发送
在上篇例子中,存在缺陷 只能允许Client给Server发消息,Server无法发消息给Client端 Client连接成功之后,Server就关闭了 这篇完善上篇的例子 TCP服务端 import ...
最新文章
- vue的指令绑定、事件、冒泡
- 只不过是R.java文件的特性-----出错信息:R.java was modified manually! Reverting to generated version!...
- nginx比较apache
- linux跨ip拷贝,Linux的虚拟机拷贝到另外的操作系统时,NAT方式的静态IP无效,一直是获取的DHCP动态地址...
- y电容如何选型_高压并联补偿电容器基础及运行管理
- python3 range函数_为什么python3中的xrange函数不能用
- ラブ・ストーリーは突然に(突然發生的愛情故事)歌詞
- 不等式解集怎么取_6.初中数学:一个不等式的解集,都是另一个不等式的解,求a的取值范围?...
- python飞机大战类_python微信飞机大战
- 计算机主板电源管理线路图,笔记本电源维修方法详解【图文教程】
- PDF转换成word转换器绿色版
- windows 错误代码2
- 官方指南:小米手机微信双开
- Blender简单建模
- 微信小程序生成二维码的示例代码
- 阿里P9:聊聊大厂晋升的“潜规则”
- 主流计算机硬盘接口是,主流固态硬盘接口有哪些?
- 河南的抗疫英雄,给出一系列抗疫英雄的姓名和来自的省份,现在请你帮忙统计来自河南的抗疫英雄有多
- Unity的gamma矫正、颜色空间及其转换的问题
- arduino使用oled代码_【教程】在ESP32上使用E32433T LoRa模块