我们先看一个最古老的多线程实现的服务端 public class SocketThread { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSock ...
分类:
编程语言 时间:
2020-05-28 14:54:22
阅读次数:
329
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 ...
分类:
其他好文 时间:
2020-04-19 18:15:45
阅读次数:
65
想要理解多路复用技术,首先要了解这个技术出现之前,我们面临的痛点是什么。 以 JAVA 为例,我们想要写一个 TCP 服务端,接收客户端发来的数据,那么我们会这样写: while (true) { Socket socket = serverSocket.accept(); //读取输入缓冲区数据 ...
分类:
其他好文 时间:
2020-04-15 01:03:57
阅读次数:
91
第一章:手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊 在第一章中运用Socket和ServerSocket简单的实现了网络通信。这一章,利用BIO编程模型进行升级改造,实现群聊聊天室。 如图:当一个客户端请求进来时,接收器会为这个客户端分配一个工作线程,这个 ...
分类:
其他好文 时间:
2020-04-11 20:35:30
阅读次数:
75
主要内容 软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 第一章 网络编程入门 1.1软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :全称为Browser/Server结构 ...
分类:
其他好文 时间:
2020-03-17 19:12:23
阅读次数:
77
@[toc] 服务器端 (1) 创建ServerSocket对象,绑定监听端口; (2) 通过accept()方法监听客户端请求; (3) 连接建立后,通过输入流读取客户端发送的请求信息; (4) 通过输出流向客户端发送相应信息; (5) 关闭响应资源。 客户端 (1) 创建Socket对象,指明需 ...
分类:
其他好文 时间:
2020-03-08 17:31:44
阅读次数:
74
目标Demo是通过JavaServerSocket和Socket通信实现客户端发送消息和发送文件到服务器,服务器接收到消息和文件,并且实现解决inputStream.read()的阻塞问题思路。服务器端创建ServerSocket服务器serverSocket=newServerSocket(port);//首先创建一个服务端口//等待客户端的连接请求socket=serverSocket.acc
分类:
移动开发 时间:
2020-03-04 23:15:06
阅读次数:
103
Netty到底是什么 从HTTP说起有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。我们回顾一下传统的HTTP服务器的原理1、创建一个ServerSocket,监听并绑 ...
分类:
Web程序 时间:
2020-02-27 19:10:25
阅读次数:
82
通常情况下,服务器不应该只接受一个客户端请求,而应该不断地接受来自客户端的所有请求,所以Java程序通常会通过循环,不断地调用ServerSocket的accept()方法。 如果服务器端要“同时”处理多个客户端的请求,因此服务器端需要为每一个客户端单独分配一个线程来处理,否则无法实现“同时”。 需 ...
分类:
编程语言 时间:
2020-02-10 17:52:32
阅读次数:
106
Socket通信: TCP协议是面向连接的、可靠的、有序的,以字节流的方式发送数据 基于TCP协议实现网络通信的类 客户端的Socket类 服务器端的ServerSocket类 Socket通信实现步骤 1.创建ServerSocket和Socket 2.打开连接到Socket的输入、输出流 3.按 ...
分类:
其他好文 时间:
2020-01-30 19:26:30
阅读次数:
107