
socket编程
文章平均质量分 80
tqyou85
这个作者很懒,什么都没留下…
展开
-
Linux下PF_PACKET的使用,RARP的server和client程序
网上看到这个,写的很具体,转过来存着。1.介绍在linux中提供了PF_PACKET接口可以操作链路层的数据。 2.使用方法定义一个pf_packet = socket(PF_SOCKET, SOCK_RAW, htons(ETH_P_RARP));就可以利用函数sendto和recefrom来读取和发送链路层的数据包了(当然,发送ARP包,上面第三个参数要变为htons(转载 2008-10-21 09:53:00 · 7731 阅读 · 2 评论 -
connect函数
对于客户机而言,要与服务器进行通信,需要向服务器发出连接请求。connect函数用于完成这项功能,该函数的具体信息如表13.7所示。表13.7 connect函数头文件函数形式int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrle转载 2009-04-21 15:16:00 · 3625 阅读 · 1 评论 -
linux socket 绑定机制的研究
http://blog.youkuaiyun.com/rstevens/archive/2006/05/08/713219.aspx1. 概述:在多 link 环境中,如何保证数据在正确的 link 上传输是一个棘手的问题。 本文主要分析 linux socket 绑定机制的实现,从而帮助开发人员更好的了解 socket 绑定的本质。2. linux kernel 提供给 user转载 2009-04-22 12:23:00 · 961 阅读 · 0 评论 -
select系统调用实例
Select 系统调用:select系统调用是用来监视多个文件句柄的状态的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变,或者到了超时时间。 具体的select系统调用的参数可以看看man手册里面的说明,这里我们用一个用户空间的事例来解释说明一下这个系统调用的用法:int main(void){ int fd1,f转载 2009-04-20 10:53:00 · 641 阅读 · 0 评论 -
linux select 解释[转]
转自:http://blog.youkuaiyun.com/freedom0203/archive/2008/04/16/2296026.aspxselect系统调用是用来让我们的程序监视多个文件句柄(file descrīptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。文件在句柄在Linux里很多,如果你man某个函数,在函数转载 2009-04-20 10:11:00 · 472 阅读 · 0 评论 -
Linux下Socket连接超时的一种实现方法
目前各平台通用的设置套接字(Socket)连接超时的办法是:创建套接字,将其设置成非阻塞状态。 调用connect连接对端主机,如果失败,判断当时的errno是否为EINPROGRESS,也就是说是不是连接正在进行中,如果是,转到步骤3,如果不是,返回错误。 用select在指定的超时时间内监听套接字的写就绪事件,如果select有监听到,证明连接成功,否则连接失败。转载 2009-02-16 11:22:00 · 585 阅读 · 0 评论 -
struct--tcphdr
sk_buff->tcphdr/usr/src/linux-2.6.19/include/linux/tcp.hstruct tcphdr { __be16 source; __be16 dest; __be32 seq; __be32 ack_seq; #if defined(__转载 2008-11-20 17:08:00 · 1038 阅读 · 0 评论 -
LINUX netlink机制
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket协议(NETLINK_USERSOCK)转载 2009-01-07 09:36:00 · 636 阅读 · 0 评论 -
linux socket 下select() 判定文件可读或写
select()的机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是Socket句柄,还是其他 文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执行了select()的进程哪一Socket或文件可读,下面具体解释:int select(nfds,转载 2008-10-27 15:59:00 · 699 阅读 · 0 评论 -
链路层访问PF_PACKET简介【转】
在linux环境中要从链路层(MAC)直接收发数据帧,可以通过libpcap与libnet两个动态库来分别完成收与发的工作。虽然它已被广泛使用,但在要求进行跨平台移植的软件中使用仍然有很多弊端。这里介绍一种更为直接地、无须安装其它库的从MAC层收发数据帧的方式,即通过定义链路层的套接字来完成。Packet套接字用于在MAC层上收发原始数据帧,这样就允许用户在用户空间完成MAC之上各个层转载 2008-10-24 17:31:00 · 1300 阅读 · 0 评论 -
socket编程中的select(zz)
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完转载 2008-10-23 16:25:00 · 457 阅读 · 0 评论 -
linux sock_raw原始套接字编程
sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket 1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|E转载 2008-10-23 09:21:00 · 1254 阅读 · 0 评论 -
ARP协议的c语言实现源代码【转载】
什么是ARP协议英文原义:Address Resolution Protocol 中文释义:(RFC-826)地址解析协议 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu转载 2008-10-24 17:49:00 · 1744 阅读 · 0 评论 -
几个网络编程常用的数据结构
struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ u_int16_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */};struct in_addr {转载 2008-10-24 09:12:00 · 1352 阅读 · 1 评论 -
linux网络编程
1. 基本概念 说到网络编程,不得不先提到OSI参考模型,其七层模型从下到上分别为1.物理层(Physical Layer,PH)2.数据链路层(Data Link Layer,DL)3.网络层(Network Layer,N)4.运输层(Transport Layer,T)5.会话层(Session Layer,S)6.表示层(Presenta转载 2008-10-23 12:41:00 · 557 阅读 · 0 评论 -
有关raw socket的一些知识
众所周知,通过socket编程,我们能够实现机器之间的通信.在TCP/IP协议簇(PF_INET)中,可以建立面向连接的SOCK_STREAM类型的socket,非连接的SOCK_DGRAM类型的socket.事实上,在所有的网络程序中,也是这两种socket用的最为广泛.除此之外,还有一些不常用的socket类型,它们却是在某些网络通信中担当重要的角色.这里要讲的就是这么一种s转载 2008-10-22 13:22:00 · 616 阅读 · 0 评论 -
套接字选项setsockopt()
套接字选项这个话题在socket编程里,可能已经属于中高级话题了,之所以在一开始就把这个话题提上来讲,是因为我们的一个近阶段目标是能够把MY_PF_INET域的RAW协议走通,并在上面跑起一个ping程序,所以,按照ping程序的要求,接下来,我们必须实现套接字选项系统调用setsockopt在MY_PF_INET中RAW协议中的相关实现。 下面是该系统调用函数的原型:转载 2009-04-22 13:30:00 · 1567 阅读 · 0 评论