Socket编程,是网络编程中最常用的术语之一了。但是真正理解Socket到底是什么的人,可能一万个人就有一万个哈姆勒特~~
Socket是个英文单词:
socket | 英[ˈsɒkɪt] | 美[ˈsɑ:kɪt] |
n. | 插座; 灯座; 窝,穴; [解] 眼窝,孔窝; |
vt. | 把…装入插座; 给…配插座; |
什么是socket应该准确的含义就是插座;我是这样理解socket这个插座的,中文翻译更喜欢用套接字。谁能通过套接字这个字面意思解释什么是socket?这翻译:what are you 想啥呢。。。
从上图看来。下面是两个应用程序通过UDP协议通信的例子,他们都使用了socket编程的技术;socket编程,说到是为了网络服务,网络服务是有内核提供的,之前讲过什么是内核的时候,说过内核就是为让让人们更好更方便的使用硬件;内核提供了网络服务,它就像一个电源一样,像使用它的应用程序,直接将插座插入到内核中,就可以使用内核源源不断的能量了。
应用程序与内核通讯都是系统调用来完成的,而需要把数据导出来,这个时候就需要用到socket了,导出不同的流量,需要用不同的socket(插座,有三孔的有两孔的,有欧洲标准的也有美国日本标准的);所以把socket理解成插座,插入到内核中,导出内核中的流量~我觉得这个就是socket为啥叫socket的真的含义了;