Linux网络编程:从入门到精通(linux网络编程pdf)


Linux网络编程是在Linux操作系统下进行网络通信的编程工作,是操作系统原理、数据结构和算法,和网络通信协议的实际应用结合,具有比较高的技术性。 掌握 Linux网络编程的基本知识可以帮助我们更好的了解 TCP/IP 协议,并且可以为开发分布式程序、多媒体程序等提供编程支持。

入门学习Linux网络编程,首先必须了解操作系统以及网络通信,比如了解 Linux 内核结构,TCP/IP 协议栈,以及常用协议,如 IP datagram, TCP 和 UDP的特性 。其次要学习Linux系统提供的网络接口函数,比如socket, select, accept 等,这些函数可以为我们提供建立连接,读写网络数据的能力。

学习Linux的网络编程相当重要的一步是编写网络程序,包括网络客户端、服务器端程序,像 HTTP,FTP,Telnet等等应用之类的程序,这些程序都需要用到Linux系统提供的网络接口函数。比如,要实现一个echo 服务器,则必须在服务器端先建立一个socket,监听连接请求:

“`c

/* 创建一个socket */

int sockfd = socket(AF_INET, SOCK_STREAM, 0);

/* bind 到一个地址 */

struct sockaddr_in addr;

memset(&addr, 0, sizeof(addr));

addr.sin_family = AF_INET;

addr.sin_port = htons(54321);

bind(sockfd, (struct sockaddr *)&addr, sizeof(addr));

/* 监听端口 */

listen(sockfd, 0);


了解了网络编程的基础知识以及系统提供的网络接口函数,学会编写网络程序以后,就可以学习高级的网络编程技术了,比如多进程网络编程,多线程网络编程,网络I/O模型,以及编写高性能服务器端程序等等。

Linux网络编程能帮助我们更有系统的学习网络,并且能使我们在开发分布式程序、多媒体程序等提供编程支持。所以掌握Linux网络编程的基础知识,也是了解网络通信协议的必要条件,并且能为我们做到从入门到“精通”,为编程提供帮助。