TCP流套接字编程

TCP流套接字与UDP数据报套接字对比

API介绍

TCP协议核心的特点是面向字节流,是通过读取数据(单位字节)来完成通信。

TCP套接字与UDP套接字不同的点在于TCP是通过建立连接,使用输入流和输出流的方式完成通信。

ServerSocket

是创建服务端Socket的API,专门用于服务端

构造方法

方法

注:有客户端连接后,会自动返回一个Socket服务端对象,并且基于Socket建立与客户端的连接,否则阻塞等待

Socket

客户端的Socket服务端中在接收客户端连接请求后返回的服务端Socket

不论是客户端或者服务端的Socket,都是在双方建立连接后保存对端信息,用来接收和发送数据的。

构造方法

方法

接下来我们实现一个回显服务器,来实现TCP协议下的连接方式

一些方法的介绍

Scanner:

可以看到,Scanner的构造方法中参数对象是可以为InputStream输入流对象的,因此使用Scanner方法可以直接写入到输入流对象中。

Scanner.hasnext():

通俗来讲,只有当客户端关闭时,返回false

PrintWriter:

对于PrintWriter来说,构造方法的参数对象也可以为OutputStream输出流对象。

服务端的实现

客户端的实现

回显服务器演示:

引入多线程实现一个服务器服务多个客户端场景

目前的代码只适用于一个服务器服务一个客户端的场景,:

如图,对于服务端而言,只限于监听一个客户端后执行processConnection方法为这个客户端服务,只有这个客户端停止运行才会连接下一个服务端。

我们要想实现多个客户端与服务器进行通信,需要引入多线程

首先我们需要打开编辑运行/调配设置的运行框,执行如下步骤,点击允许多个实例:

服务器使用多线程(线程池的方式)

修改一下服务器的start方法

显示:

相关推荐
昔时扬尘处4 小时前
【C2000系列DSP的不掉电升级】C2000 不掉电升级(LFU)方案详解(含流程、代码与官方方案适配)
网络·dsp·c2000·德州仪器·实时控制mcu·lfu不掉电升级·后台升级
ZHHHHHJ665 小时前
LL层-PAST
运维·服务器·网络
老蒋新思维5 小时前
创客匠人启示:破解知识交付的“认知摩擦”——IP、AI与数据的三角解耦模型
大数据·人工智能·网络协议·tcp/ip·重构·创客匠人·知识变现
百***07455 小时前
GPT-5.2 极速接入指南:流程详解与主流模型对比
网络·人工智能·gpt
REDcker7 小时前
TCP/IP 协议栈详解:协议栈是什么意思?为什么叫“协议栈”?
网络·网络协议·tcp/ip
老蒋新思维7 小时前
反脆弱性设计:创始人IP与AI智能体如何构建愈动荡愈强大的知识商业|创客匠人
人工智能·网络协议·tcp/ip·算法·机器学习·创始人ip·创客匠人
凯子坚持 c7 小时前
Docker网络架构深度解析:从原理到实战
网络·docker·架构
工控小楠7 小时前
Profinet从站转EtherNet IP主站协议网关应用于自动化生产线
网络协议·tcp/ip·自动化
cdprinter7 小时前
信刻光盘数据自动回读系统,多重保障数据安全及调阅便捷性!
网络·安全·自动化
发光小北8 小时前
SG-CAN (FD) NET-210(双通道 CAN (FD) 转以太网网关)特点与功能介绍
开发语言·网络·php