
Linux网络编程
想飞大白菜
这个作者很懒,什么都没留下…
展开
-
(七)Linux网络编程--7. TCP/IP协议 8. 套接字选项
你也许听说过TCP/IP协议,那么你知道到底什么是TCP,什么是IP吗?在这一章里面,我们一起来学习这个目前网络上用最广泛的协议. 7.1 网络传输分层 如果你考过计算机等级考试,那么你就应该已经知道了网络传输分层这个概念.在网络上,人们为了传输数据时的方便, 把网络的传输分为7个层次.分别是:应用层,表示层,会话层,传输层,网络层,数据链路层和物理层.分好了层以后,传输数转载 2015-04-28 15:05:19 · 770 阅读 · 0 评论 -
(十)Linux网络编程--10. 原始套接字
我们在前面已经学习过了网络程序的两种套接字(SOCK_STREAM,SOCK_DRAGM).在这一章 里面我们一起来学习另外 一种套接字–原始套接字(SOCK_RAW). 应用原始套接字,我们可以编写出由TCP和UDP套接字不能够实现的功能. 注意原始套接字只能够由有 root权限的人创建. 10.1 原始套接字的创建 int sockfd(AF_INET,SOCK_RAW,proto转载 2015-04-28 15:08:58 · 343 阅读 · 0 评论 -
(五)Linux网络编程--5. 用户数据报发送
我们前面已经学习网络程序的一个很大的部分,由这个部分的知识,我们实际上可以写出大部分的基于TCP协议的网络程序了. 现在在 Linux下的大部分程序都是用我们上面所学的知识来写的.我们可以去找一些源程序来参考一下.这一章,我们简单的学习一 下基于UDP协议的网络程序. 5.1 两个常用的函数 int recvfrom(int sockfd,void *buf,int len,unsig转载 2015-04-28 15:02:47 · 309 阅读 · 0 评论 -
(二)Linux网络编程--初等网络函数介绍(TCP)
Linux系统是通过提供套接字(socket)来进行网络编程的.网络程序通过socket和其它几个函数的调用, 会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的好处. 我们可以通过向描述符读写操作实现网络之间的数据交流. (一)socket int socket(int domain, int type,int prot转载 2015-04-28 14:58:21 · 319 阅读 · 0 评论 -
(九)Linux网络编程--9. 服务器模型
学习过《软件工程》吧.软件工程可是每一个程序员”必修”的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面, 我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件, 这样我们开发软件的效率才会高. 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最转载 2015-04-28 15:07:41 · 348 阅读 · 0 评论 -
(三)Linux网络编程--3. 服务器和客户机的信息函数
这一章我们来学习转换和网络方面的信息函数. 3.1 字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端, 高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux下面,有专门的字节转换函数. unsigned long int htonl(unsigned long int hostlong) uns转载 2015-04-28 15:01:16 · 331 阅读 · 0 评论 -
(四)Linux网络编程--4. 完整的读写函数
一旦我们建立了连接,我们的下一步就是进行通信了.在Linux下面把我们前面建立的通道看成是文件描述符, 这样服务器端和客户端进行通信时候,只要往文件描述符里面读写东西了. 就象我们往文件读写一样. 4.1 写函数write ssize_t write(int fd,const void *buf,size_t nbytes) write函数将buf中的nbytes字节内容写入文件描述符fd.转载 2015-04-28 15:02:06 · 490 阅读 · 0 评论 -
(六)Linux网络编程--6. 高级套接字函数
在前面的几个部分里面,我们已经学会了怎么样从网络上读写信息了.前面的一些函数(read,write)是网络程序里面最基本的函数. 也是最原始的通信函数.在这一章里面,我们一起来学习网络通信的高级函数.这一章我们学习另外几个读写函数. 6.1 recv和send recv和send函数提供了和read和write差不多的功能.不过它们提供 了第四个参数来控制读写操作.转载 2015-04-28 15:03:35 · 349 阅读 · 0 评论 -
(一)Linux网络编程--网络知识介绍
Linux网络编程–网络知识介绍 客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的–客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一服务端 和客户端相对应的程序即为服务端程序。被动的等待外面的程序来和自己通讯的程序称为转载 2015-04-28 14:58:16 · 428 阅读 · 0 评论