private void button_Send_Click(object sender, EventArgs e)
{
textBox4.Text = sendcommand(tcpClient, textBox3.Text);
}
private string sendcommand(TcpClient client ,String message)
{
try
{
// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
// Get a client stream for reading and writing.
// Stream stream = client.GetStream();
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: {0}", message);
// Receive the TcpServer.response.
// Buffer to store the response bytes.
data = new Byte[256];
// String to store the response ASCII representation.
String responseData = String.Empty;
// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
return responseData;
//Console.WriteLine("Received: {0}", responseData);
// Close everything.
stream.Close();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
return "";
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
//Console.WriteLine("\n Press Enter to continue...");
return "";
//Console.Read();
}
private void textBox_Port_TextChanged(object sender, EventArgs e)
{
}
}
}
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
->
responseData = string.Join(" ", data.Select(x => x.ToString("X2")));
ASCII和十六进制有什么区别吗?难道你的ASCII码表不是十六进制的吗?