2009-05-20 36 views
0

我想在socket中發送BigInteger數據,我的朋友想要檢索數據。
我正在使用Java,但我的朋友使用C#。如何使用C#從套接字中檢索Java數據?

String str = "Hello"; 
BigInteger big = new BigInteger(str.getBytes); 
byteToBeSent[] = big.toByteArray(); 

我通過套接字發送這個字節數組(byteToBeSent[])。我的朋友想要檢索「你好」。

這怎麼可能?

+0

從像「Hello」這樣的字符串創建一個BigInteger似乎是一個壞主意。 – Cheeso 2009-05-20 15:10:20

回答

2

老實說,你最好的選擇是使用C#中的內置編碼類。

string str = "Hello"; 
byte[] data = System.Text.Encoding.UTF8.GetBytes(str); 

然後通過套接字發送。

1

爲什麼使用BigInteger發送字符串數據?或者僅僅是一個例子?

如果要發送字符串數據,請使用String.getBytes(String encoding),發送結果並使用System.Text.Encoding對其進行解碼。

3

從Java使用String.getBytes(encoding)發送字符串,並指定編碼以匹配您的朋友將如何閱讀它(例如UTF-8)。

這會將您的字符串轉換爲可在C#端翻譯的字節流,因爲您同意編碼機制。

我不確定你的BigInteger機制在做什麼,但我不相信它是可移植的,也不處理可觀的字符串。

0

在C#結束,您可以使用System.Text.Encoding.ASCII.GetString(bytesToConvert [])將接收到的字節數組轉換回字符串。

我原以爲這是某種Java成語將字符串轉換爲字節數組。它可以正確地將字符串轉換爲ASCII字節,並且由於BigInteger長度是任意的,字符串的長度不應該成爲問題。

相關問題