任何人都可以告诉我如何使用C#????
创建TCP数据包答案 0 :(得分:3)
看起来您正在寻找TCP Client课程。
查看MSDN并阅读System.Net.Sockets命名空间文档以获取更多信息。
答案 1 :(得分:2)
您不创建TCP数据包。 TCP呈现基于流的抽象;您可以从网络套接字读取和写入字节流。网络很可能在某些时候将这些作为数据包处理,这不是您需要在应用程序级别关注的事情。
如果您需要关注,可以使用GNU netcat等工具发送流量。
答案 2 :(得分:1)
我可以建议你去这个图书馆:http://www.eex-dev.net/fileadmin/user_upload/apidoc/NetworkLibrary/index.html吗?
以下是发送自定义TCP数据包的代码:
//Create a list for the interfaces
List<EthernetInterface> wpcInterfaces = new List<EthernetInterface>();
//Get all local interfaces
WinPcapInterface[] arWpc = EthernetInterface.GetAllPcapInterfaces();
//Create a router
Router rRouter = new Router();
//Foreach WinPcapInterface of this host
foreach (WinPcapInterface wpc in arWpc)
{
//Create a new interface handler and start it
EthernetInterface ipInterface = new EthernetInterface(wpc);
ipInterface.Start();
//Then add it to the router and to our list
wpcInterfaces.Add(ipInterface);
rRouter.AddInterface(ipInterface);
}
//Create a TCP frame
TCPFrame tcpFrame = new TCPFrame();
tcpFrame.DestinationPort = 80;
tcpFrame.SourcePort = 12345;
tcpFrame.AcknowledgementFlagSet = true;
//Create an IP frame and put the TCP frame into it
IPv4Frame ipFrame = new IPv4Frame();
ipFrame.DestinationAddress = IPAddress.Parse("192.168.0.1");
ipFrame.SourceAddress = IPAddress.Parse("192.168.1.254");
ipFrame.EncapsulatedFrame = tcpFrame;
//Send the frame
rRouter.PushTraffic(tcpFrame);
//Cleanup resources
rRouter.Cleanup();
//Start the cleanup process for all interfaces
foreach (EthernetInterface ipInterface in wpcInterfaces)
{
ipInterface.Cleanup();
}
//Stop all handlers
rRouter.Stop();
//Stop all interfaces
foreach (EthernetInterface ipInterface in wpcInterfaces)
{
ipInterface.Stop();
}
希望它有所帮助。 :)
答案 3 :(得分:0)
查看System.Net.Sockets命名空间。特别是在System.Net.Sockets.Socket班。