socket相关的小总结

本文介绍了Socket的基本概念,包括服务器监听、客户端请求和连接确认。详细阐述了Socket的两种模式:面向连接和无连接,分别对应TCP和UDP协议。并以Java为例,逐步展示了简化版、改进版的Socket实现,以及如何实现服务端多监听来处理多个客户端请求。
摘要由CSDN通过智能技术生成

一 什么是Socket

Socket的概念很简单,它是网络上运行的两个程序间双向通讯的一端,既可以接收请求,也可以发送请求,利用它可以较为方便地编写网络上数据的传递。

所以简而言之,Socket就是进程通信的端点,Socket之间的连接过程可以分为几步:

1、服务器监听

服务器端Socket并不定位具体的客户端Socket,而是处于等待连接的状态,实时监控网络状态

2、客户端请求

客户端Socket发出连接请求,要连接的目标是服务端Socket。为此,客户端Socket必须首先描述它要连接的服务端Socket,指出服务端Socket的地址和端口号,然后就向服务端Socket提出连接请求

3、连接确认

当服务端Socket监听到或者说是接收到客户端Socket的连接请求,它就响 应客户端Socket的请求,建立一个新的线程,把服务端Socket的描述发给客户端,一旦客户端确认了此描述,连接就好了。而服务端Socket继续 处于监听状态,继续接收其他客户端套接字的连接请求

 

 

二 Socket的两种模式

Socket有两种主要的操作方式:面向连接和无连接的

 

2.1 面向连接的Socket

操作就像一部电话,必须建立一个连接和一人呼叫,所有事情在达到时的顺序与它们出发时的顺序一样,但可靠性,正确性和有序性有所保障

面向连接的操作使用TCP协议。一个这个模式下的Socket必须在发送数据之前 与目的地的Socket取得一个连接,一旦连接建立了,Socket就可以使用一个流接口:打开-->读-->写-->关闭,所有发送 的信息都会在另一端以同样的顺序被接收。面向连接的操作比无连接的操作效率更低,但是数据的安全性更高。

2.2 无连接的Socket

操作就像是一个邮件投递,没有什么 保证,多个邮件可能在达到时的顺序与出发时的顺序不一样。快速、高效,但是数据安全性不佳

无连接的操作使用数据报协议。一个数据报是一个独立的单元,它包含了所有这次投递的信息,就像一个信封,它有目的地址和要发送的内容,这个模式下的Socket并不需要连接一个目的Socket,它只是简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值