黑马程序员--10.网络编程--06.【Clinet_Server通信原理】【TCP_客户端和服务端会话】【阻塞式方法的详解】

网络编程--6

C/S通信原理(Client/Server)

TCP客户端和服务端会话 

阻塞式方法详解

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

1.    C/S通信原理

1). 服务器端的特点

(1). 一个服务端的存在可以允许接入多个客户端

(2). Server端和单个Client端通信过程

{1}. 服务端ServerSocket对象本身没有对象, 但是客户端Socket对象本身对象。

{2}. 但是一旦某个客户端服务端建立了连接之后服务端会通过自身的accept方法获取到这个客户端通信端点Socket对象的副本,并使用这个Socket副本真实的客户端对象进行通信

e.g.

ServerSocket ss =new ServerSocket(10003); Socket s =ss.accept();

Socket s=ss.accept();使得ServerSocket端点获取到了客户端Socket的副本

因此在服务端的程序仅仅是通过ServerSocket对象获取到连接进来的Client的Socket对象之后,便是用这个Socket进行通信。

2). C/S通信原理

一个Server端多个Client端进行通信的原理。

(1). 一个Server端和多个Client端的通信原理图


(2). 通信过程分析

[1]. 客户端Socket A对象Server端发了一个请求。假设此时连接成功。Server端便会通过自身的accept()方法获取客户端A的副本Socket对象

[2]. A对象本身输入流对象in输出流对象out,因此在Server端A对象的副本同样也有in和out两个对象

[3]. 从客户端A服务端Server发送数据

客户端A对象通过自身的outServer端发送出数据,此时Server端使用A对象的副本in对象进行数据的读取

[4]. 客户端A服务端Server读取数据

Server端

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值