学习笔记,侵权删.
代码语言: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()函数来建立与服务器的连接。
第四步:调用读写函数发送或者接收数据。
第五步:终止连接。