SOCK编程 一个tcp源码一个udp源码 希望大家喜欢
上传时间: 2013-12-19
上传用户:thinode
MFC基础教程,涉及控件,绘图,文档,菜单,工具条,SOCK 编程等。
上传时间: 2013-04-24
上传用户:qq21508895
非常方便的网络SOCKet类,开发网络程序变得很简单。 支持自定义的string类。 用法:typedef YSOCKet<CString> CMySOCKet //CString也可以用自己的string类,从而可以用来atl等任何地方 CMySOCKet tpSOCK //声明 tpSOCK.Create()//建立SOCK tpSOCK.Bind()//绑定 tpSOCK.Listen()//开始侦听
上传时间: 2013-12-20
上传用户:daguda
Lwip协议栈的实现目的,无非是要上层用来实现app的SOCKet编程。好,我们就从SOCKet开始。为了兼容性,lwip的SOCKet应该也是提供标准的SOCKet接口函数,恩,没错,在src\inc lude\lwip\SOCKet.h文件中可以看到下面的宏定义:#if LWIP COMPAT SOCKETS#define accept(a,b,c)Iwip accept(a,b,c)#define bind(a,b,c)Iwip bind(a,b,c)#define shutdown(a,b)Iwip shutdown(a,b)#define closeSOCKet(s)Iwip close(s)好,这个结构先不管它,接着看下get SOCKet函数的实现【也是在src\api\SOCKet.c文件中】,在这里我们看到这样一条语句SOCK =&SOCKets[s];很明显,返回值也是这个SOCK它是根据传进来的序列号在SOCKets数组中找到对应的元素并返回该元素的地址。好了,那么这个SOCKets数组是在哪里被赋值了这些元素的呢?进行到这里似乎应该从标准的SOCKet编程的开始,也就是SOCKet函数讲起,那我们就顺便看一下。它对应的实际实现是下面这个函数Int Iwip SOCKet(int domain,int type,int protocol)【src\api\SOCKet.c】这个函数根据不同的协议类型,也就是函数中的type参数,创建了一个netconn结构体的指针,接着就是用这个指针作为参数调用了alloc SOCKet函数,下面具体看下这个函数的实现
上传时间: 2022-06-19
上传用户:aben
1、原始套接字透析之前言大多数程序员所接触到的套接字(SOCKet)为两类服务应用:(1)流式套接字(SOCK-STREAM):一种面向连接的SOCKet,针对于面向连接的TCP(2)数据报式套接字(SOCK-DGRAM):一种无连接的SOCKet,对应于无连接的UDP服务应用.从用户的角度来看,SOCK-STREAM,SOCK-DGRAM这两类套接字似乎的确涵盖了TCP/IP应用的全部,因为基于TCPIP的应用,从协议栈的层次上讲,在传输层的确只可能建立于TCP或UDP协议之上(图1),而SOCK STREAM,SOCK DGRAM又分别对应于TCP和UDP,所以几乎所有的应用都可以用这两类套接字实现。但是,当我们面对如下问题时,SOCK_STREAM,SOCK DGRAM将显得这样无助:(1).怎样发送一个自定义的IP包?(2)怎样发送一个ICMP协议包?(3)怎样使本机进入杂糅模式,从而能够进行网络sniffer?(4)怎样分析所有经过网络的包,而不管这样包是否是发给自己的?(5)怎样伪装本地的IP地址?这使得我们必须面对另外一个深刻的主题--原始套字(Raw SOCKet),Raw SOCKet广泛应用于高级网络编程,也是一种广泛的黑客手段。著名的网络sniffer、拒绝服务攻击(DOS),IP欺骗等都可以以Raw SOCKet实现。Raw SOCKet与标准套接字(SOCK STREAM,SOCK DGRAM)的区别在于前者直接置"根"于操作系统网络核心(Network Core),而SOCK STREAM.SOCK DGRAM则"悬浮“于TCP和UDP协议的外围,如图2所示:
上传时间: 2022-06-19
上传用户:得之我幸78