本人是在ns3入门的时候深入了解的socket,之前对socket的理解粗浅的停留在“一个接口,软件通过此接口可以获取TCP/IP的某个端口/某个IP地址发来的数据包”,但是对如何调用socket,相关的C++函数都是什么以及参数是什么,知之不深。
首先推荐ns3 tutorial里面推荐的socket学习网站:http://cs.baylor.edu/~donahoo/practical/CSockets/
网站包含socket介绍书籍《Practical Guide for Programmers》的若干例子,还包括一个讲解Socket的PPT,本文内容的主要来源就是此PPT。
基础settings
两台计算机想要传数据,他们如何相互标识呢?使用不同的IP地址即可。
两个应用想要传输数据,他们如何互相标识呢?在不同IP地址的基础上,每台计算机不同的应用读取不同的端口/向不同的端口发送数据即可。
这些都是原理,呢么在C/C++中,如何实现上述原理呢?当然不是
“hey send packet0 to Port5000 IP192.168.6.5;”
应用调用一些叫xxx_socket_xxx(a,b,c)的函数,把数据包发送到指定IP机器的指定端口(除了一些公认的端口以外,每个APP可以自行定义端口号,换言之只要给这个端口发数据包,这个程序就能接收到)