簡體   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