如何使用C#或Java发送SYN数据包

我想将SYN数据包发送到远程主机,现在的问题是,如果我使用任何.NET框架类,那么我就不能这样做;例如TCP客户端获取主机IP和端口号并建立连接,与 java中的ClientSocket类相同.

我想控制自己的连接建立;我的意思是我想发送连接请求(SYN数据包)然后等待连接回复然后发送数据包.我知道没有外部库可能并不容易,所以如果有人可以指导我如何在C#或Java中完成它. .

解决方法

而不是到目前为止评论两个答案…自XP以来,Windows中的原始套接字受到限制(对抗恶意软件攻击).阅读以下:

http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx

一旦完成,您当然可以根据Mat的Java答案或Ritch的C#规则构建一个原始套接字.

它将严格限制访问,并且非常依赖于系统.我不知道一种方法来完成3路握手并通过TCP / UDP传输数据(虽然我有兴趣听一个).

我想我应该快速修改这个答案.如果你不使用winsock而是使用不同的TCP堆栈,你可能得到你想要的东西(但是这仍然不能直接在OS中使用).以此为例提供:http://www.komodia.com/tcpip-library-v5-1/或此前SO线程What is a popular,multi-platform,free and open source socket library

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...