![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
奔跑的路
这个作者很懒,什么都没留下…
展开
-
netfilter详解
[plain] view plaincopyprint?目录 1 - 简介 1.1 - 本文涉及的内容 1.2 - 本文不涉及的内容 2 - 各种Netfilter hook及其用法 2.1 - Linux内核对数据包的处理 2.2 - Netfilter对IPv4的hook 3 - 注册和注销Netfilter hook 4 - Netfilt转载 2014-09-05 22:01:57 · 2451 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【上】
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I转载 2015-04-10 16:21:39 · 598 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【下】
可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP,这样会让系统疑惑,不知道该用什么协议来伺候你了。 今天我们介绍原始套接字的另一种用法转载 2015-04-10 16:22:36 · 566 阅读 · 0 评论 -
LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址。(一)主要的步骤:在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取struct in_pktinfo(struct in_pktinfo是struct msghdr中msg_control转载 2015-04-23 09:31:56 · 3080 阅读 · 0 评论 -
netlink 编程介绍
Linux从2.2开始支持PF_NETLINK域的通讯方式,这个方式主要的用途是在Linux的内核空间和用户空间进行通讯。目前在网络上面关于netlink编程的中文资料很少,为了促进对netlink编程的理解我编写了这篇文章,由于我对netlink的了解不是很透彻,特别是对于内核部分不是很熟悉,所以文章中肯定有很多错误的地方还请大家指正。文章分下面几个部分进行讲述netlink 基础知识n转载 2015-04-08 16:35:14 · 3090 阅读 · 0 评论 -
struct sockaddr_nl 结构体 由来、含义以及使用——获取Linux路由表
Linux 用户态与内核态的交互 在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交互就全部使用了netlink,著名的内核包过滤框架Netfilter在与用户空间的通 读,也在最新版本中改变为netlink,无疑,它将是Linux用户态与内核态交流的主要方法之一。它的通信依据是转载 2015-04-08 16:23:37 · 2223 阅读 · 0 评论 -
AF_INET和PF_INET的细微不同
文章出处:http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/deddb9ef51222e4578f0551d.html 在写网络程序的时候,建立TCP socket: sock = socket(PF_INET, SOCK_STREAM, 0); 然后再绑定本地地址或连接远程地址时需要初始化sockaddr_转载 2015-04-20 10:59:55 · 5214 阅读 · 0 评论 -
多线程并发服务器编程
多线程并发服务器编程一、实验目的理解线程的创建和终止方法;学会编写基本的多线程并发服务器程序和客户程序;理解多线程与多进程的区别。二、实验平台ubuntu-8.04操作系统三、实验内容编写多线程并发服务器程序和客户程序,具体功能如下:1、服务器等待接收客户的连接请求,一旦连接成功则显示客户地址,接着接收客户端的名称并显示;然后接收来自该客户的字符串,每当收到转载 2015-04-27 14:07:08 · 1221 阅读 · 0 评论 -
服务器并发处理架构
网络服务器如何处理并发请求的模型称之为多任务体系结构。 1.Inetd模式:在大部分Unix操作系统中,默认的多任务体系结构是Inetd应用程序。通用的网络服务器体系结构Inetd分为两个部分:主服务进程和客户服务进程。主服务进程通常用于等待客户端的连接请求。一旦客户端发起一个请求,主服务器将建立连接,同时调用fork创建一个新的客户服务进程,并由客户服务进程处理客户端的请求,而主服务进程转载 2015-04-27 13:34:49 · 1057 阅读 · 0 评论 -
I/O多路复用服务器编程
一、实验目的理解I/O多路复用技术的原理。学会编写基本的单线程并发服务器程序和客户程序。二、实验平台ubuntu-8.04操作系统三、实验内容采用I/O多路复用技术实现单线程并发服务器,完成使用一个线程处理并发客户请求的功能。四、实验原理除了可以采用多进程和多线程方法实现并发服务器之外,还可以采用I/O多路复用技术。通过该技术,系统内核缓冲I/O数据,当某个I/O准转载 2015-04-27 14:06:18 · 1103 阅读 · 0 评论 -
多进程并发服务器编程
多进程并发服务器编程一、实验目的理解进程的创建和终止方法;熟悉父进程与子进程对描述符的操作过程;学会编写基本的多进程并发服务器程序和客户程序。二、实验平台ubuntu-8.04操作系统三、实验内容编写多进程并发服务器程序和客户程序,具体功能如下:1、服务器等待接收客户的连接请求,一旦连接成功则显示客户地址,接着接收客户端的名称并显示;然后接收来自该客户的字符转载 2015-04-27 14:06:42 · 1163 阅读 · 0 评论 -
注册no-ip动态域名以及使用方法,也适用其它Linux平台
1、先打开这个网址http://www.noip.com/ 2、点击页面右上绿色的Sing Up,进行注册 3、会出现这个页面,把这些填上Create my hostname later这一项不打勾 填完后,点击页面下方的这个按钮提交 4、过一会邮箱会收到一封来自No-Ip的邮件,点击里面的链接激活就注册成功了。转载 2015-03-06 09:59:20 · 40596 阅读 · 2 评论 -
IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:#inclu转载 2015-03-16 14:55:23 · 484 阅读 · 0 评论 -
getaddrinfo函数详解
gethostbyname和gethostbyaddr这两个函数仅仅支持IPv4,getaddrinfo函数能够处理名字到地址以及服务到端口这两 种转换,返回的是一个sockaddr结构的链表而不是一个地址清单。这些sockaddr结构随后可由套接口函数直接使用。如此以 来,getaddrinfo函数把协议相关性安全隐藏在这个库函数内部。应用程序只要处理由getaddrinfo函数填写的套接口地址转载 2015-02-12 17:13:25 · 5295 阅读 · 0 评论 -
Linux 网络编程之ioctl函数
1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.相关结构体与相关函数#include int ioctl(int d,int request,....);参数:d转载 2014-10-09 09:29:09 · 615 阅读 · 0 评论 -
Socket通信原理和实践
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?转载 2014-12-18 17:36:18 · 727 阅读 · 0 评论 -
Linux 网络编程之ioctl函数
1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.相关结构体与相关函数#include int ioctl(int d,int request,....);转载 2015-02-09 17:35:09 · 611 阅读 · 0 评论 -
ioctl在socket中的一些用法及示例
ioctl在socket中的一些用法及示例函数 : ioctl(int fd, int request, void * arg)定义 : 功能 : 控制I/O设备, 提供了一种获得设备信息和向设备发送控制参数的手段.参数 : int fd 文件句柄. 用于socket时, 是socket套接字. int request 函数定义的所有操作. 关于s转载 2015-02-10 10:42:00 · 711 阅读 · 0 评论 -
sockaddr_in , sockaddr , in_addr区别Socket编程函数集(非常有用)
一、sockaddr和sockaddr_in在字节长度上都为16个BYTE,可以进行转换struct sockaddr { unsigned short sa_family; //2 char sa_data[14]; //14 }; 上面是通用的socket转载 2015-02-10 15:28:55 · 1438 阅读 · 0 评论 -
sockaddr_ll ---设备无关的物理层地址结构
sockaddr_ll ---设备无关的物理层地址结构sockaddr_ll: 表示设备无关的物理层地址结构定义:[cpp] view plaincopystruct sockaddr_ll { unsigned short sll_family; __be16 sll_protocol转载 2015-02-11 09:04:09 · 14061 阅读 · 0 评论 -
ARP的C代码实现
linux下C语言实现ARP数据包发送#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ETH_HW_ADDR_LEN 6#define IP_转载 2015-02-11 09:32:16 · 11059 阅读 · 0 评论 -
openwrt uhttpd进程
uhttpd是一个简单的web服务器程序,以前没怎么接触过,所以这里主要是对web服务器设计的一些学习总结。Openwrt系统中,真正用到的(需要了解的),其实不多,主要就是cgi的处理,包括与cgi程序的信息交互等,最后一节详细描述一下。1.HTTP协议概述HTTP协议是目前互联网使用最广泛的应用层协议。其协议框架很简单,在一个TCP连接中,以一问一答的方式进行信息交互。具体讲,就是客户转载 2015-01-22 09:43:04 · 4012 阅读 · 0 评论 -
Linux Socket 相关函数作用及参数详细分析
1、socket()函数int socket(int domain, int type, int protocol);参见/usr/include/bits/socket.hsocket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket转载 2015-02-11 11:22:27 · 8082 阅读 · 0 评论 -
struct ifreq 结构体
结构原型:/* * Interface request structure used for socket * ioctl's. All interface ioctl's must have parameter * definitions which begin with ifr_name. The * remainder may be interface specifi转载 2015-02-10 15:02:59 · 998 阅读 · 0 评论 -
UDP服务器端和客户端程序设计
一、实验目的学习和掌握Linux下的UDP服务器基本原理和基本编程方法,体会与TCP的区别,TCP编程:http://blog.csdn.net/yueguanghaidao/article/details/7035248二、实验平台ubuntu-8.04操作系统三、实验内容编写Linux下UDP服务器套接字程序,服务器接收客户端发送的信息并显示,同时显示客户的IP地址、端口号转载 2015-04-27 14:09:44 · 699 阅读 · 0 评论