tcp监听另一个程序如何做呢


tcp监听另一个程序怎么做呢
就是得到tcp传过来的内容又不占用到端口,好像挺矛盾的


就是sniffe

哪个高手有做过指教一下。。谢谢了

C#语言 .net 程序开发

爆炸小卷子 10 years, 3 months ago


sniffer就是这样啊,它不会占用端口的.仅仅监听

xvzan answered 10 years, 3 months ago


既然要监听,应该需要占用端口,要不然监听什么?

为了看注册问题 answered 10 years, 3 months ago


关注

brenden answered 10 years, 3 months ago


WinPCap 应该可以的,很多抓包程序都是这个

十二月的风 answered 10 years, 3 months ago


Winpcap是做了一个网络驱动进行截包

但丁的红风衣 answered 10 years, 3 months ago


關注中......

SunnY耀 answered 10 years, 3 months ago


谁说不占用端口啊,首先你要开个端口,在bind之后才能sniffer

受受天然呆 answered 10 years, 3 months ago


WinPCap + Sniffer实现,看看WinPCap的文档。C#和C++、VB都可以调用。

原理不懂,可能是虚拟网卡

RyoYL answered 10 years, 3 months ago


winsock2最明显的就是支持了raw socket套接字类型,使用raw socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的ip包,当然包括目的不是本机的ip包,通过原始套接字,我们也可以更加自如地控制windows下的多种协议,而且能够对网络底层的传输机制进行控制。

在本文例子中,我在nbyte.basicclass命名空间实现了rawsocket类,它包含了我们实现数据包监视的核心技术。在实现这个类之前,需要先写一个ip头结构,来暂时存放一些有关网络封包的信息:


[structlayout(layoutkind.explicit)]
public struct ipheader
{
[fieldoffset(0)] public byte ipverlen; //i4位首部长度+4位ip版本号
[fieldoffset(1)] public byte ip
tos; //8位服务类型tos
[fieldoffset(2)] public ushort iptotallength; //16位数据包总长度(字节)
[fieldoffset(4)] public ushort ip
id; //16位标识
[fieldoffset(6)] public ushort ipoffset; //3位标志位
[fieldoffset(8)] public byte ip
ttl; //8位生存时间 ttl
[fieldoffset(9)] public byte ipprotocol; //8位协议(tcp, udp, icmp, etc.)
[fieldoffset(10)] public ushort ip
checksum; //16位ip首部校验和
[fieldoffset(12)] public uint ip_srcaddr; //32位源ip地址

kyiku answered 10 years, 3 months ago


如果 是 2000
可以 直接 将 网卡 设 为 混乱(乱摸) 模式

奥妮克希亚 answered 10 years, 3 months ago


防火墙?

肉汤培养基 answered 10 years, 3 months ago


我原来在网上见过一个delphi的程序可以做到
开源的

恶魔OWO answered 10 years, 3 months ago


不知道具体什么样子
用udp直接取呗,


Jastin answered 10 years, 3 months ago

Your Answer