C#tcp客户端(ASCII)

C#tcp客户端(ASCII),c#,tcp,client,ascii,C#,Tcp,Client,Ascii,我正在尝试使用Tcp客户端读取服务器。要读取服务器,需要发送命令 命令(ASCII通信): octet001:SOH; 八位字节002:访问代码: “0”-读取 “1”-需求 “2”-更新 octet003:STX; 八位字节004-135:用于常规通信服务器/读卡器的命令,将半字节转换为半字节转换为ASCII码,包括CRC; octet136:ETX; octet137:LRC 简单回答: octet001:STX; 八位字节002-517:常规通信服务器/读卡器的简单响应,将半字节转换为半字

我正在尝试使用Tcp客户端读取服务器。要读取服务器,需要发送命令

命令(ASCII通信):

octet001:SOH; 八位字节002:访问代码: “0”-读取 “1”-需求 “2”-更新 octet003:STX; 八位字节004-135:用于常规通信服务器/读卡器的命令,将半字节转换为半字节转换为ASCII码,包括CRC; octet136:ETX; octet137:LRC

简单回答:

octet001:STX; 八位字节002-517:常规通信服务器/读卡器的简单响应,将半字节转换为半字节,转换为ASCII码,包括CRC; octet518:ETX; octet519:LRC

我的Tcp客户端代码:

我的问题是,如何将这些命令转换为发送到服务器?我试过这个:

Connect("192.168.0.250", "0");
Connect("192.168.0.250", "1");
Connect("192.168.0.250", "2");
但没有服务器响应。

不确定,但请尝试以下操作:

        try
        {
            TcpClient client = new TcpClient();
            client.Connect(server, port);
             
            byte[] data = new byte[256];
            StringBuilder response = new StringBuilder();
            NetworkStream stream = client.GetStream();
             
            do
            {
                int bytes = stream.Read(data, 0, data.Length);
                response.Append(Encoding.UTF8.GetString(data, 0, bytes));
            }
            while (stream.DataAvailable); // while data in stream
         
            Console.WriteLine(response.ToString());

            // close stream
            stream.Close();
            client.Close();
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketException: {0}", e);
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception: {0}", e.Message);
        }

        Console.WriteLine("End...");
        Console.Read();
您可以通过TCP聊天查看我的回购协议 工作:

  • 构建客户端和服务器控制台应用程序
  • 打开调试文件夹
  • 启动Server.exe
  • 启动Client.exe,然后输入名称和消息=>所有客户端和服务器都将收到消息

  • 嗨,阿库玛。我测试了你的例子,但没用。和我的例子一样。。在“读取”行中,始终超时。我需要发送命令来返回数据。所有命令都在我帖子的“命令”部分。我没有访问服务器的权限,我只知道有一个服务器,我需要发送命令来接收数据。您的internet上可能有问题,因为某些提供商或网络设置可能会干扰连接(添加的视频)不。。。服务器正在我的本地网络上运行。没有互联网问题或设置。我可以接。。但是我不识字。因为我不知道如何发送正确的命令。
            try
            {
                TcpClient client = new TcpClient();
                client.Connect(server, port);
                 
                byte[] data = new byte[256];
                StringBuilder response = new StringBuilder();
                NetworkStream stream = client.GetStream();
                 
                do
                {
                    int bytes = stream.Read(data, 0, data.Length);
                    response.Append(Encoding.UTF8.GetString(data, 0, bytes));
                }
                while (stream.DataAvailable); // while data in stream
             
                Console.WriteLine(response.ToString());
    
                // close stream
                stream.Close();
                client.Close();
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception: {0}", e.Message);
            }
    
            Console.WriteLine("End...");
            Console.Read();