1、简单介绍socket
最近刚刚结束CC3200的TCP/IP的协议实现,初学者可以先熟悉TI的SDK种的tcp_socket这个例程,如果没有一定的LINUX的网络协议知识确实还是比较困难的,在这一篇将重点结束一下socket。度娘搜索LINUX之socket,可以得到一大堆的知识点。这就简单介绍一下我搜搜集的的资料吧。socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。抽象出来,socket实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。在网间网内部,每一个socket用一个半相关描述:(协议,本地地址,本地端口)一个完整的socket有一个本地唯一的socket号,创建时由操作系统自动分配。最重要一点是socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的socket 系统调用。客户随机申请一个socket ,系统为之分配一个socket号;服务器拥有全局公认的 socket ,任何客户都可以向它发出连接请求和信息请求。
socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。服务器socket 半相关为全局所公认非常重要。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket(),该函数返 回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该socket实现的。
到这里就对socket在网络中的效用有了一个大体的了解,刚刚学习到这里的时候我就郁闷,这个socket在这个网络中的那一层?如何实现的呢?由于本人对网络也只是有一些基础的了解,到这里就只能求助度娘了,通过搜索发现了下面的两种图(这两种图是盗用其他博友的,还请见谅),
图一
图一是基本的网络各层,在这幅图中可以对网络的基本分层有一个大概的了解,下面一起看看看图二;
图二
将两幅图对比一下就可以发现socket在整个网络架构中的位置了,到这里基本就可以理解其实socket就是应用层与TCP/IP协议族通信的中间软件抽象层。到这里对socket的基本介绍就算结束了,如果还想了解更多,可以自己问问度年哈。了解了socket之后,再看TI的例程后,是不是有点头绪了?

