Discussion:
(时间太久无法回复)
骨頭
2007-05-17 07:09:00 UTC
Permalink
※ 引述《caballero (唸書唸書...)》之銘言:
: 在測c和java雙向socket參數互丟 (socket的一端是用c語言寫的,一端是用java寫的)
: 在c丟char * 這種字串型式給 java的時候,java收進來是沒有問題的..顯示正常
: 但是在java直接寫 out.print("hello!"); 出去給c的時候 (out是建立好的TCP通訊)
: 在c那邊用char *或是char a[100]來接,都有問題...印出來是亂碼或是沒東西
: 後來改成只丟int型態的數字來測,也是很怪...c收到後印出的int值不正確
: 請問是不是有哪邊c和java的參數型態差別,小弟沒注意到?
: 還請指導一下qq 感謝
: (因為c丟給java的時候很正常,所以想說就只是這樣丟,沒想到java丟給c就卡了Orz)

看起來像是 endian 問題 ,

這是關於 資料傳輸的過程中 , byte的順序


有 little - endian 跟 big-endian 兩種...
這篇文章寫得很清楚....
http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=45181


--
我以前也碰過 ̄▽ ̄
我當時的解法 , 往前爬我的文章 , 有關編碼的就知道了...
印象中是三月下旬的文章

--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.147.114
So be it
2007-05-19 03:10:55 UTC
Permalink
※ 引述《caballero (唸書唸書...)》之銘言:
: 在測c和java雙向socket參數互丟 (socket的一端是用c語言寫的,一端是用java寫的)
: 在c丟char * 這種字串型式給 java的時候,java收進來是沒有問題的..顯示正常
: 但是在java直接寫 out.print("hello!"); 出去給c的時候 (out是建立好的TCP通訊)
: 在c那邊用char *或是char a[100]來接,都有問題...印出來是亂碼或是沒東西
: 後來改成只丟int型態的數字來測,也是很怪...c收到後印出的int值不正確
: 請問是不是有哪邊c和java的參數型態差別,小弟沒注意到?
: 還請指導一下qq 感謝
: (因為c丟給java的時候很正常,所以想說就只是這樣丟,沒想到java丟給c就卡了Orz)

會不會是編碼的問題?
你確定java丟的是ascii code??
如果是java 用的是unicode, 在c那邊可能要再處理吧。。。
C預設使用ascii code...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.166.218.6

继续阅读narkive:
Loading...