Linux 网络编程-基础知识(1) 1. Linux 网络知识介绍 1.1 客户端程序和服务端程序 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接. 一般的来说是服务端的程序 在一个端口上监听,直到有一个客户端的程序发来了请求. 1.2 常用的命令 由于网络程序是有两个部分组成,所以在调试的时候比较麻烦,为此我们有必要知道一些常用的网络命令 netstat 命令 netstat 是用来显示网络的连接,路由表和接口统计等网络的信息. netstat 有许多的选项 我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可以使用帮助手册获得详细的情况. telnet telnet 是一个用来远程控制的程序,但是我们完全可以用这个程序来调试我们的服务端程序的. 比如我们的服务器程序在监听 8888 端口,我们可以用 telnet localhost 8888 来查看服务端的状况. 1.3 TCP/UDP 介绍 TCP(Transfer Control Protocol)传输控制协议是一种面向连接的协议, 当我们的网络程序使用 这个协议的时候,网络可以保证我们的客户端和服务端的连接是可靠的,安全的. UDP(User Datagram Protocol)用户数据报协议是一种非面向连接的协议, 这种协议并不能保证我们 的网络程序的连接是可靠的,所以我们现在编写的程序一般是采用 TCP 协议的. Linux 网络编程-简单的客户端和服务器通讯程序开发入门(2) 简介: 本文详细介绍了 Linux 下B/S 结构的客户端服务器通讯程序的开发入门, 其中对重要的网络函数和结构体作了详细的说明和分析, 最后给出一个简单的客户端和服务器通讯程序示例以加深理解。 2. 初等网络函数介绍(TCP) Linux 系统是通过提供套接字(socket)来进行网络编程的.网络程序通过 socket 和其它几个函数的调用, 会返回一个通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作, 这就是 linux 的设备无关性的好处.我们可以通过向描述符读写操作实现网络之间的数据交流. 2.1 socket int socket(int domain, int type,int protocol) domain:说明我们网络程序所在的主机采用的通讯协族(AF_UNIX 和AF_INET 等). AF_UNIX 只能够用于单一的Unix 系统进程间通信,而AF_INET 是针对Internet 的, 因而可以允许在远程 主机之间通信(当我们 man socket 时发现 domain 可选项是 PF_*而不...