繁体   English   中英

通过套接字从C ++向Java发送字符串

[英]send a string from c++ to java through socket

我在c ++端有一个代码块,它将传递这样的字符串:

char someName[100]="Some String here";
    send(sock,someName,sizeof(someName),0);

在另一端,我有一个Java代码来寻找这样的字符串消息:

DataInputStream dIn= new DataInputStream(SOCK.getInputStream());
String filename=dIn.readUTF(); //Looks for "Some String here"

该代码不会继续,并给出了UTFDataFormatException。 所以我基本上是在寻找将c ++ someName转换为UTF-8格式,以便两端都满意!

谢谢!

编辑:我尝试在Java代码上使用BufferedReader并得到类似的信息:

‡~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 〜~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ áø〜‡áø〜‡áø〜‡áø〜‡áø〜‡áø〜‡áø〜

DataInputBuffer.ReadUTF()读取以修改的utf-8编码的字符串,这使其成为读取未使用DataOutputBuffer.WriteUTF()编码的数据的不佳选择。

另外,您的C ++程序会发送固定长度的字符串,并用零填充。 当接收器不希望这样做时,这也会引起问题。

C ++ 11还支持UTF-8字符串文字,请参见此处

从C / C ++应用程序将数据写入文本文件,然后从Java应用程序读取该文本文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM