Socket 简介

2022-03-29 17:32:45 浏览数 (1)

学习笔记,侵权删.

代码语言:javascript复制
Socket相关知识

(1)什么是Socket?

在计算机通信领域,socket被翻译为“套接字”

它是计算机之间进行通信

的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计

算机的数据,也可以向其他计算机发送数据。

(2)Socket的本质

Socket本质是编程接口(API),对TCP/《P的封装,TCP/丨P也要提供可供程序

员做网络开发所用的接口,这就是Socket编程接口。

(3)Socket的作用

Socket的英文原义是“孔”或“插座”,通常也称作“套接字”,可以用来

实现不同虚拟机或不同计算机之间的通信。
代码语言:javascript复制
Socket的典型应用:

(1)Socket的典型应用之一就是Web服务器和浏览器:浏览器获取用户输

入的URL,向服务器发起请求,服务器分析接收到的URL,将对应的网页内

容返回给浏览器,浏览器再经过解析和渲染,就将文字、图片、视频等元素

呈现给用户。

(2)QQ或微信等聊天工具也是Socket的应用之一,本地的QQ和微信程序

就是客户端,登录过程就是连接服务器的过程,聊天过程其实就是Socket的

发送和接受过程。 
代码语言:javascript复制
Socket相关知识

Socket编程方式:

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可

以用“打开open一>读写write/read一>关闭close"模式来操作。Socket就是

该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其

进行的操作(读/写℃、打开、关闭),因此Socket也提供了类似于连接

(Connect)、关闭连接(Close)、发送接受等方法调用。
代码语言:javascript复制
数据传输方式

常用的有两种:STREAM和DGRAM。

1)STREAM表示面向连接的数据传输方式。数据可以准确无误地到达另一

台计算机,如果损坏或丢失,可以重新发送,但效率相对较慢。

2)DGRAM表示无连接的数据传输方式。计算机只管传输数据,不作数据校

验,DGRAM所做的校验工作少,所以效率比SOCKSTREAM咼。

QQ视频聊天和语音聊天就使用DGRAM传输数据,因为首先要保证通信的

效率,尽量减小延迟,而数据的正确性是次要的,即使丢失很小的一部分数

据,视频和音频也可以正常解析,最多出现噪点或杂音,不会对通信质量有

实质自、影响
代码语言:javascript复制
顶目前准备知识点

服务器端程序的编写步骤:

第一步:调用s。cket()函数创建一个用于通信的套接字。

第二步:给己经创建的套接字绑定一个端口号,这一般通过设置网络套接

口地址和调用bind()函数来实现。

第三步:调用|isten()函数使套接字成为一个监听套接字。

第四步:调用accept()函数来接受客户端的连接,这是就可以和客户端通

第五步:处理客户端的连接请求。

第六步:终止连接。 
代码语言:javascript复制
顶目前准备知识点

客户端程序编写步骤:

第一步:调用socket()函数创建一个用于通信的套接字。

第二步:通过设置套接字地址结构,说明客户端与之通信的服务器蒯P地

址和端口号。

第三步:调用connect()函数来建立与服务器的连接。

第四步:调用读写函数发送或者接收数据。

第五步:终止连接。

0 人点赞