如何在C#中模拟PuTTY原始连接?

时间:2017-02-16 16:18:35

标签: c# sockets tcp ethernet

请原谅我的无知,但我相信我只需指向正确的方向......

我有一台通过以太网与我的PC通信的设备。我打开PuTTY,输入IP,端口,然后选择原始连接类型。连接成功后,我可以输入" R"从此设备接收一个样本。这没有问题。

我已经尝试了很多我在C#(MSDN套接字示例,博客示例)中实现这一目标的例子,到目前为止所做的一切都不尽如人意。

 private static void StartClient()
{
    // Connect to a remote device.  
    try
    { 
        IPAddress ipAddress = IPAddress.Parse("192.168.0.4");
        IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);

        // Create a TCP/IP socket.  
        Socket client = new Socket(AddressFamily.InterNetwork,
            SocketType.Raw, ProtocolType.Raw);

        // Connect to the remote endpoint.  
        client.BeginConnect(remoteEP,
            new AsyncCallback(ConnectCallback), client);
        connectDone.WaitOne();

        var isConnected = client.Connected;

        // Send test data to the remote device.  
        Send(client, "S");
        sendDone.WaitOne();

我修改了这个示例(来自MSDN:https://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx)以包含我使用的IP和端口,我试图将SocketType和ProtocolType更改为raw。该设备的数据表确实说它附带了TCP,因为它是默认设置。

我根本无法建立与此设备的连接,更不用说写入和读取它了。

非常感谢任何建议。

0 个答案:

没有答案