socket是什么()

在计算机通信领域,socket翻译为“套接字”,是计算机之间的一种约定或通信方式。通过套接字,一台计算机可以从其他计算机接收数据,并向其他计算机发送数据。soc

在计算机通信领域,socket翻译为“套接字”,是计算机之间的一种约定或通信方式。通过套接字,一台计算机可以从其他计算机接收数据,并向其他计算机发送数据。

socket的典型应用有Web服务器和浏览器:浏览器获取用户输入的URL,向服务器发出请求,服务器对接收到的URL进行解析,将相应的网页内容返回给浏览器,浏览器将文本、图片、视频等元素解析渲染后呈现给用户。

学习socket就是学习计算机之间如何通信,编写实用程序。

无论你是小白还是丹尼尔、边肖,我都欢迎你加入C/C++共享资源群:231662552。不定期分享干货,包括自己整理的一份2018最新学习资料和零基础入门教程,发给大家。欢迎初学者和高级朋友。

IP地址(IP地址)

计算机分布在世界各地。如果你想和他们交流,你必须知道确切的位置。确定计算机位置的方法有很多种,IP地址是最常用的一种。例如,114.114.114.114是中国第一个、全球第三个开放的DNS服务地址,127.0.0.1是本地地址。

其实我们的电脑并不知道IP地址的地理位置。通信时,它只是将IP地址封装到要发送的数据包中,交给路由器处理。路由器有着非常智能高效的算法,会很快找到目标计算机,并将数据包交付给它,完成一次单向通信。

目前大多数软件使用IPv4地址,但是IPv6也正在被人们接受,尤其是在教育网络中,已经得到了广泛的应用。

港口(港口)

有了IP地址,虽然可以找到目标电脑,但还是无法通信。一台计算机可以同时提供多种网络服务,如Web服务、FTP服务(文件传输服务)、SMTP服务(邮箱服务)等。,只有IP地址。虽然计算机可以正确接收数据包,但不知道将数据包发送给哪个网络程序进行处理,所以通信失败。

为了区分不同的网络程序,计算机将为每个网络程序分配一个唯一的端口号。例如,Web服务的端口号为80,FTP服务的端口号为21,SMTP服务的端口号为25。

端口是一个虚拟的逻辑概念。端口可以理解为数据进出的门。每个门都有一个不同的号码,就是端口号。如下图所示:

协议(协议)

协议是网络通信的约定,通信双方必须遵守,才能正常发送和接收数据。协议有很多种,如TCP、UDP、IP等。通信双方必须使用相同的协议进行通信。协议是一种规范,由计算机组织制定,它规定了许多细节,如如何建立连接,如何识别对方等。

协议只是一个规范,必须通过计算机软件来实现。比如IP协议规定了如何找到目标计算机,所以每个开发者在开发自己的软件时都必须遵守这个协议,不能另起炉灶。

所谓协议族,就是一组协议(多个协议)的统称。最常用的是TCP/IP协议族,包括TCP、IP、UDP、Telnet、FTP、SMTP等数百种相互关联的协议。由于TCP和IP是两种常用的底层协议,它们统称为TCP/IP协议族。

数据传输模式

计算机之间的数据传输方式有很多种,各有优缺点。常用的方法有两种:SOCK_STREAM和SOCK_DGRAM。

1) SOCK_STREAM代表面向连接的数据传输模式。数据可以准确到达另一台电脑,如果损坏或丢失,可以重新发送,但效率相对较慢。常见的http协议使用SOCK_STREAM传输数据,因为要保证数据的正确性,否则无法正常解析网页。

2) SOCK_DGRAM代表无连接数据传输模式。计算机只传输数据,不进行数据验证。如果数据在传输过程中损坏或没有到达另一台计算机,就没有办法补救。也就是说,数据错了就错了,不能重传。SOCK_DGRAM的效率比SOCK_STREAM高,因为它做的检查工作更少。

QQ视频聊天和语音聊天都是用SOCK_DGRAM来传输数据的,因为首先要做的是保证通信效率,尽量减少延迟,数据的正确性是次要的。即使少部分数据丢失,视音频也能正常解读,最多出现噪音或杂音,不会对通信质量产生实质性影响。

注意:SOCK_DGRAM 没有想象中的糟糕,不会频繁的丢失数据,数据错误只是小概率事件。

可能有多个协议使用相同的数据传输方式,所以在socket编程中需要同时指明数据传输方式和协议。

总结一下:IP地址和端口可以在浩瀚的互联网中定位要通信的程序,协议和数据传输方式规定了如何传输数据。有了这些,两台电脑就可以通信了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/221031.html

发表回复

登录后才能评论