我想在socket中發送BigInteger
數據,我的朋友想要檢索數據。
我正在使用Java,但我的朋友使用C#。如何使用C#從套接字中檢索Java數據?
String str = "Hello";
BigInteger big = new BigInteger(str.getBytes);
byteToBeSent[] = big.toByteArray();
我通過套接字發送這個字節數組(byteToBeSent[]
)。我的朋友想要檢索「你好」。
這怎麼可能?
我想在socket中發送BigInteger
數據,我的朋友想要檢索數據。
我正在使用Java,但我的朋友使用C#。如何使用C#從套接字中檢索Java數據?
String str = "Hello";
BigInteger big = new BigInteger(str.getBytes);
byteToBeSent[] = big.toByteArray();
我通過套接字發送這個字節數組(byteToBeSent[]
)。我的朋友想要檢索「你好」。
這怎麼可能?
老實說,你最好的選擇是使用C#中的內置編碼類。
string str = "Hello";
byte[] data = System.Text.Encoding.UTF8.GetBytes(str);
然後通過套接字發送。
您需要購買一個custom BigInteger class for C#。
但解析「你好」作爲一個biginteger不會工作。我想發送文字,你最好使用Navaars方法。
爲什麼使用BigInteger
發送字符串數據?或者僅僅是一個例子?
如果要發送字符串數據,請使用String.getBytes(String encoding)
,發送結果並使用System.Text.Encoding
對其進行解碼。
從Java使用String.getBytes(encoding)發送字符串,並指定編碼以匹配您的朋友將如何閱讀它(例如UTF-8)。
這會將您的字符串轉換爲可在C#端翻譯的字節流,因爲您同意編碼機制。
我不確定你的BigInteger機制在做什麼,但我不相信它是可移植的,也不處理可觀的字符串。
在C#結束,您可以使用System.Text.Encoding.ASCII.GetString(bytesToConvert [])將接收到的字節數組轉換回字符串。
我原以爲這是某種Java成語將字符串轉換爲字節數組。它可以正確地將字符串轉換爲ASCII字節,並且由於BigInteger長度是任意的,字符串的長度不應該成爲問題。
從像「Hello」這樣的字符串創建一個BigInteger似乎是一個壞主意。 – Cheeso 2009-05-20 15:10:20