我正在尝试在连接到串行端口的EFTPOS终端和计算机之间建立串行端口通信。 EFTPOS手册具有用于测试的C#代码,它们具有以下几行内容,可直接写入端口和从端口读取。port.WriteLine("@PL");
Console.WriteLine(port.ReadLine());
但是在Java中,如果我使用它,我的应用程序将暂停。所以我在Java中使用事件处理程序从EFTPOS终端读取响应。仍然我无法使它工作。现在,我对C#的WriteLine(“ @ PL”)和Java的OutputStream.write(bytearray)表示怀疑。当将两个字符串写在端口上时,这两种方法是否用相同的方式?因为仅当消息为“ @PL”时,EFTPOS才会响应。解决这个问题将使我大为欣慰。
最佳答案
他们可能使用不同的编码进行编写。如果EFTPOS终端期望ASCII且Java正在编写UTF-16,则它将无法正常工作。