Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向TCP套接字发送十六进制字符串_C#_Sockets_Tcp - Fatal编程技术网

C# 向TCP套接字发送十六进制字符串

C# 向TCP套接字发送十六进制字符串,c#,sockets,tcp,C#,Sockets,Tcp,我正在使用TCP/IP将VideoJet打印机连接到我的电脑,创建C#windows dekstop应用程序来读取和写入TCP套接字。当我使用hercules软件[When Hex Checkbox tick]在十六进制字符串下符号时,它会响应,但当我从我的C#code发送相同的十六进制字符串时,它不会响应 请告诉我我的代码哪里做错了 命令十六进制字符串 A503CA002000000E44112500000B6000003C005006100720061006D0073003E0020000

我正在使用TCP/IP将VideoJet打印机连接到我的电脑,创建C#windows dekstop应用程序来读取和写入TCP套接字。当我使用hercules软件[When Hex Checkbox tick]在十六进制字符串下符号时,它会响应,但当我从我的C#code发送相同的十六进制字符串时,它不会响应 请告诉我我的代码哪里做错了

命令十六进制字符串
A503CA002000000E44112500000B6000003C005006100720061006D0073003E002000020003C0043006F006C0020000690064003D002200065007600690063000650073002F00500048000640073002F003100200720069006E00740049006E0066006F0072006D006100740069006F006E00220067006500700740046006C0066006006700670065003D002002002006000670040065007007007007007008003D22002200670067005006500440070070070070022002200670067006500400700700700700220022002D007000400400400700700700220022002D007000020020002F003E003C002F005006100720061006D0073003E000000我真的不知道,为什么你要做一个While循环。当您从服务器
readBytes
接收字节数时,您可以使用如下编码完成代码:

string responseData = Encoding.ASCII.GetString(data,0,readbytes);

要获取更多信息,您可以在此链接中找到

您是以文本还是实际字节的形式发送数据?我假设是前者,因为您有问题,而且代码中似乎没有任何地方将十六进制转换为字节。因此,转换并发送实际数据,而不是文本。对于转换,您可以使用最喜爱的搜索引擎快速查找代码。请参阅我的更新问题。我已尝试将十六进制字符串转换为十六进制字节并发送到TCP套接字,但得到的响应是“”与hercules中的响应不同,hercules中有一个开始字符“Z”,它正在结束连接。我发送的是粉红色的命令行,其余的黑色行是响应
string responseData = Encoding.ASCII.GetString(data,0,readbytes);