Linux网络编程 1.socket套接字
Linux网络编程 1.socket套接字 1.什么是socket套接字 Socket套接字由远景研究规划局(Advanced Research Projects Agency, ARPA)资助加里福尼亚大学伯克利分校的一个研究组研发。其目的是将TCP/IP协议相关软件移植到UNIX类系统中。设计者开发了一个接口,以便应用程序能简单地调用该接口通信。这个接口不断完善,最终形成了Socket套接字。Linux系统采用了Socket套接字,因此,Socket接口就被广泛使用,到现在已经成为事实上的标准。与套接字相关的函数被包含在头文件sys/socket.h中。 简单来说socket套接字就是一套TCP/IP通信协议的API。 套接字怎么使用呢? 套接字通信一般用于连接客户端和服务器。在服务器端: 由于服务器时被动提供服务,客户端主动连接,所以服务器应该先于客户端启动,启动服务器之后服务器的IP和端口不能变化。服务器的ip和端口要在启动之前绑定。 在客户端: 因为客户端是主动连接服务器,所以需要知道服务器的ip地址,和服务器主机上的服务器进程:端口。 到这我们先不着急看代码,还有一个重要问题需要解决: 首先我们想象一个通信的场景: 客户端给服务器发送了一个复杂的数据-结构体,在客户端数据的低字节存储在内存的低地址位,高字节存储在高地址位。而服务端恰好相反