
linux网络编程
newnewman80
这个作者很懒,什么都没留下…
展开
-
linux下最简单的ftpget ftpput 源代码
/*FtpGetRun*/#include #include #include #include #include #include #include #include #include /*FtpGetRun Variable*/FILE *pFtpIOFile = NULL;FILE *pFileCmdChmod; //使用popen方转载 2011-12-16 09:12:54 · 10576 阅读 · 3 评论 -
sigaction函数解析
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函数oldactintsigaction(int signo,const转载 2013-01-29 09:40:05 · 1109 阅读 · 0 评论 -
多路复用select与poll
多路复用select与poll在UNIX/linux中有4中IO模型,分别为: 1、 阻塞IO 2、 非阻塞IO 3、 IO多路复用 4、 信号驱动IO这几种IO模型,阻塞IO是最长用到的,并且操作相对简单,但是缺点在于效率低下,尤其是在,同时操作多个IO的时候,不能随时的处理各个IO操作。而非阻塞转载 2012-09-04 15:04:17 · 781 阅读 · 0 评论 -
《深入理解Linux网络内幕》学习笔记三:第七章 组件初始化内核架构
宏标记 linux内核中绝大多数初始化函数和变量都使用了各种各样的宏标记,形如;static int __init pci_porc_init(void){...} static char version[] __devinitdata=drv_name".."module_init(...)其中__init,module_init,__devinitdat转载 2012-10-18 09:57:49 · 1015 阅读 · 0 评论 -
《深入理解Linux网络内幕》学习笔记二:网络设备初始化
网络设备初始化 如果要使一个网络设备可用,它就必须能被内核正确识别并且与正确的设备驱动关联起来。首先,设备驱动既可以做为内核模块动态加载,也可以是内核的一个静态组件。其次,设备可以在启动时识别,也可以在运行时加载识别(热插拔设备 USB PCI IEEE...) 静态编译的设备驱动/启动识别的设备注册和初始化下图为系统初始化流程(内核子系统和静态编译的设备驱动转载 2012-10-16 18:42:25 · 1216 阅读 · 0 评论 -
《深入理解Linux网络内幕》学习笔记一:内核通知链
大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。 通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执行。所以对于转载 2012-10-15 10:25:04 · 972 阅读 · 0 评论 -
linux协议栈skb操作函数
接字缓冲区函数函数名功能函数形成参数描述skb_queue_empty检查队列是否为空int skb_queue_empty (struct sk_buff_head * list)list为队列头如果队列为空返回真,否则返回假skb_get转载 2012-09-20 15:35:11 · 1413 阅读 · 0 评论 -
Iovec,Msghdr
msghdr and cmsghdr 证书可以作为通信中所接收的附属数据的一部分而接收。附属数据对于通常数据来说是补充或是从属。这就引出需要在这里强调的几点问题:证书是作为附属数据的一部分而接收的。附属数据必须是补充通常数据的(他不可以独立传送)。附属数据也可以包含其他的信息,例如文件描述符。附属数据可以同时包含多个附属项目(例如同时包含证书与文件描述符)。证书是由Linu转载 2012-09-20 15:32:50 · 1585 阅读 · 0 评论 -
recvmsg与sendmsg
recvmsg与sendmsg功能更为强大,当然用起来也更为复杂。#include "sys/socket.h" ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags);ssize_t sendmsg(int sockfd, struct msghdr * msg, int flags);成功时候返回读写字节数转载 2012-09-20 15:53:19 · 7707 阅读 · 0 评论 -
原始套接字SOCK_RAW
实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM)。而这些数据包都是由系统提供的协议栈实现,用户只需要填充应用层报文即可,由系统完成底层报文头的填充并发送。然而在某些情况下需要执行更底层的操作,比如修改报文头、避开系统协议栈等。这个时候就需要使用其他的方式来实现。 一 原始套转载 2012-09-20 15:31:55 · 24851 阅读 · 2 评论 -
netlink由于版本问题注意事项
1、选一个没有用到的协议类型,注意要避开netlink.h中已经定义好的类型。注意保证内核层和用户层的协议类类型的一致。也就是说内核层创建 netlink函数netlink_kernel_create的第一个参数和用户层创建socket的socket函数的第三个参数要一致。否则是不能 建立连接的。 2、版本问题。如果你在网上搜到一个帖子说netlink代码保证可用,你满心欢喜把转载 2012-09-20 14:39:47 · 2068 阅读 · 0 评论 -
telnet 简单客户端学习
#include #include #include #include #include #include #include #include #include #include #define MAX_PARAMTER 3 //参数个数/*TELNET命令*/#define IAC 255 //TELNET协商语句以此开头#define WILL 251转载 2012-09-07 10:33:14 · 7591 阅读 · 2 评论 -
嵌入式设备web服务器比较
现在在嵌入式设备中所使用的web服务器主要有:boa、thttpd、mini_httpd、shttpd、lighttpd、goaheand、appweb和apache等。Boa1.介绍Boa诞生于1991年,作者Paul Philips。是开源的,应用很广泛,特别适合于嵌入式设备,网上流行程度很广。它的官方网站说boa是最受人喜爱的嵌入式web服务器。功能较为强大,支持认证,c转载 2013-04-16 16:10:05 · 59452 阅读 · 2 评论