一.说明
对于TCP/udp的说明已经很多了,我在这里只是简单的说明一下
二.套接字scoket
套接字是一种具有之前所说的“通信端点”概念的计算网络数据结构。相当
于电话插口,没它无法通信,这个比喻非常形象。
套接字起源于20世纪70年代加州伯克利分校版本的Unix,即BSD Unix
。又称为“伯克利套接字”或“BSD套接字”。最初套接字被设计用在同一台
主机上多个应用程序之间的通讯,这被称为进程间通讯或IPC。
套接字分两种:基于文件型和基于网络的
第一个套接字家族为AF_UNIX,表示“地址家族:UNIX”。包括
Python在内的大多数流行平台上都使用术语“地址家族”及其缩写AF。由于两
个进程都运行在同一台机器上,而且这些套接字是基于文件的,所以它们的底
层结构是由文件系统来支持的。可以理解为同一台电脑上,文件系统确实是不
同的进程都能进行访问的。
第二个套接字家族为AF_INET,表示”地址家族:Internet“。还有
一种地址家族AF_INET6被用于网际协议IPv6寻址。Python 2.5中加入了一种
Linux套接字的支持:AF_NETLINK(无连接)套接字家族,让用户代码与内核
代码之间的IPC可以使用标准BSD套接字接口,这种方法更为精巧和安全。
Python只支持AF_UNIX、AF_NETLINK和AF_INET家族。网络编程关注
AF_INET。
如果把套接字比作电话的查看——即通信的最底层结构,那主机与端
口就相当于区号和电话号码的一对组合。一个因特网地址由网络通信必须的主
机与端口组成。
而且另一端一定要有人接听才行,否则会提示”对不起,您拨打的电
话是空号,请查询后再拨“。同样你也可能会遇到如”不能连接该服务器、服
务器无法响应“等。合法的端口范围是0~65535,其中小于1024端口号为系统
保留端口。
三.面向连接与无连接
面向连接:通信之前一定要建立一条连接,这种通信方式也被成为”虚电路
“或”流套接字“。面向连接的通信方式提供了顺序的、可靠地、不会重复的
数据传输