参考大神文章
1.什么是Socket
网络编程就是指编写程序使两台联网的计算机交换数据。这就是网络编程的全部内容。
那么这两台计算机用什么传输数据呢?首先需要物理连接。如今大部分计算机都已经连接到互联网,因此不用担心这点。
在此基础上,只需要考虑如何编写数据传输程序。但实际上这点也不用愁,因为操作系统已经提供了socket了。
socket的原义时“插座”,在计算机通信领域,socket被翻译成“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。
我们把插头插到插座上就能从电网获得电力供应,同样,为了与远程计算机进行数据传输,需要连接到因特网,而 socket 就是用来连接到因特网的工具。
2.Socket的本质
Socket的本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口。
3.TCP/IP协议
要理解Socket,必须得理解TCP/IP。
OSI七层模型如下: