[英]Mocking a TCP/IP connection with C#
我是一個網絡n00b,所以請溫柔並以一種真正的,真正的虛擬方式解釋事物(在我看來,每次涉及網絡相關的東西,人們開始說一種完全不同的語言)。 我是一個相當有經驗的C#程序員,但在機器之間的通信方面缺乏一些技巧。
場景是這樣的:我正在使用通過tcp / ip與其他設備通信的產品。 是否有可能制作一個像ta tcp / ip連接一樣的虛擬程序(在我的機器上本地),所以我可以通過設置其IP地址(和端口)來連接我的其他程序,然后讓它返回任何模擬/我想要的測試數據?
是:您可以設置與自己計算機上運行的程序的TCP連接。 您應使用的主機名是localhost
,或IP地址是127.0.0.1
:另請參閱Loopback(虛擬網絡接口) 。
是的,完全可能。 看一下System.Net.Sockets.TcpClient和System.Net.Sockets.TcpListener類 - 它們應該是一個很好的起點。
老實說,我沒有看到“嘲笑”任何東西只是使用正確的TCP / IP連接,因為顯然你可以通過TCP / IP在同一IP上的兩個不同的應用程序之間發送數據。
看看這個例子:
我之前做過這個。 我已經創建了一組用於模擬各種技術的工具,您可以從以下位置下載:
http://www.codeproject.com/KB/biztalk/Excellence.aspx
這允許您設置要發送和接收的數據。 你可能需要調整一下,但主要的東西已經存在。
我相信你對TcpReceiveMiniServer
很感興趣。
這是一個迷你樣本:
static void Main(string[] args)
{
TcpReceiveMiniServer server = new TcpReceiveMiniServer(8789);
server.Start();
server.DataArrived += new TcpReceiveMiniServer.DataArrivedHandler(server_DataArrived);
Console.Read();
}
static void server_DataArrived(object sender, DataArrivedEventArgs e)
{
// do something with e.Data
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.