SOCKS和SOCKET的区别

2018-01-07 23:06:03  阅读 10026 次 评论 0 条

前言

此文献给此刻和我前一刻一样迷糊的人,大牛请无视。

平常我们总说SOCKET通信,TCP,UDP什么的,只知道这些是用来做网络通信的,写代码时找个例子实现功能就可以了,并没有深入去理解它们。

我第一次接触SOCKS时以为它只是一种叫法,然后项目中要用到SOCKS5,依然找了个例子,看了下java代码,用的ServerSocket和Socket,此时疑惑来了,这和以前做TCP通信不是一样的吗?怎么这套代码就是成了SOCKS5了。在度娘的无私帮助下,终于搞懂这些东西的意义……

正文

SOCKET被称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。它的本质是编程接口(API),对TCP/IP的封装。

SOCKS是一个代理协议,目前最新版本为SOCKS5,所谓代理就是,你可以通过它的去间接的访问网络,相当于一个中转站。有必要说明下代理的工作原理,很简单。(图片是偷来的 =_=)

WX20230227-220949@2x.png

区别:

SOCKET是一个API,一个工具,让你建立网络连接用的。

SOCKS是协议,是一组数据结构,由于数据结构简单,目前没发现什么封装好的系统API,所以数据包需要自己写代码去组 。例子网上很多,自己去找。

有的小同学看到“协议”两个字,感觉高大上又来了,其实所谓协议,只不过是双方约定的一套数据结构,只要涉及到数据交换的都叫协议, 只不过TCP、UDP、SOCKS这些被国际机构标准化后取了个名字,全球通用了,系统厂商封装了API。你自己的通信接口也可以取个名字啊,只不过这个名字只在你的项目组里通用而已。

以上是个人理解,如有错误欢迎指正。

本文地址:http://bloguan.com/?id=318
版权声明:本文为原创文章,版权归 博观网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?