我想将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