我想在socket中发送BigInteger
数据,而我的朋友想要检索数据
我使用的是Java,但我的朋友使用的是C#。
String str = "Hello";
BigInteger big = new BigInteger(str.getBytes);
byteToBeSent[] = big.toByteArray();
我通过socket发送这个字节数组(byteToBeSent[]
)。我的朋友想要检索“你好”。
这怎么可能?
答案 0 :(得分:3)
从Java发送,使用String.getBytes(encoding)发送您的字符串,并指定编码以匹配您的朋友将如何阅读它(例如UTF-8)。
这会将您的字符串转换为可在C#端进行翻译的字节流,因为您同意编码机制。
我不确定你的BigInteger机制在做什么,但我不相信它是可移植的,也不会处理相当大的字符串。
答案 1 :(得分:2)
老实说,你最好的选择是使用C#中的内置编码类。
string str = "Hello";
byte[] data = System.Text.Encoding.UTF8.GetBytes(str);
然后通过套接字发送。
答案 2 :(得分:1)
为什么使用BigInteger
发送字符串数据?或者这只是一个例子?
如果要发送字符串数据,请使用String.getBytes(String encoding)
,发送结果并使用System.Text.Encoding
对其进行解码。
答案 3 :(得分:0)
您需要获得custom BigInteger class for C#。
但解析“Hello”作为一个大整数是不行的。我想发送文本,你最好使用Navaars方法。
答案 4 :(得分:0)
在C#端,您可以使用System.Text.Encoding.ASCII.GetString(bytesToConvert [])将接收到的字节数组转换回字符串。
我原以为这是将字符串转换为字节数组的某种Java习语。它确实正确地将字符串转换为ASCII字节,并且由于BigInteger长度是任意的,因此字符串的长度不应成为问题。