dポイントプレゼントキャンペーン実施中!

ソケット通信を利用してデータを送信した際に、
データの一部が文字化けしてしまって困っています。

Cのプログラム内でデータを作成し、
writeを使用してソケットディスクリプタに書き込んでます。
デーモンを介してJavaのプログラムに送信しているのですが、
writeする直前では正常なデータなのに、
Java側で受信すると一部の文字が化けてしまうことがあります。
原因とかぜんぜんわからなくて、かなり困ってるのですが、
わかる方いらっしゃいましたら教えてくださぁ~~~いっ!
お願いします!!!

ちなみに、送信しているデータは構造体です。

A 回答 (1件)

あまりに抽象的すぎます。


どのようなデータを送信して、どのような結果が得られて、どこかまずいのか。
また、送受信するソースコードはどのように書いているのか、
それくらいは質問する際に記述すべきです。

この回答への補足

ごめんなさい。こうゆーの使うの初めてなので
なんて書いたらいいのかわからなかったです。

送信するデータは
”茨城支店サーバ\a神奈川支店サーバ\a東京支店サーバ\a・・・”
とゆー感じで、\aで区切られたデータがいくつか連なっています。

このデータをwriteを使用して
下記のようにソケットディスクリプタに書き込んでます。


memset(ret_data1.req_data,'\0',WORKSIZE - sizeof(long) * 2);
memcpy(ret_data1.req_data,send_data->req_data,size);
ret_size = write(sock_d,(char *)&ret_data1,WORKSIZE);
if(ret_size < 0) {
return NG;
}


上記のsend_data->req_dataにデータが格納されてます。

このようにしてデータを送信したときに、
Javaの方で受信すると、複数あるデータの一部
(例えば、”神奈川支店サーバ”だけとか)が
文字化けしてしまいます。
Java側では受信するデータの数を想定していて、
文字化けにより、二つのデータが一つになってしまい、
データ数が一致しないため、エラーと判断されます。

Java側の受信しているソースがわからないので、
どのようにして受け取っているのかがわかりません。

コレだけじゃわからない・・・ですよね。。。

補足日時:2002/03/26 13:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!