我的C ++服务器使用以下代码向我的Java客户端发送数字11
boost::system::error_code ignored_error;
tcp::socket* server_socket;
...
size_t check = boost::asio::write(*server_socket, boost::asio::buffer("11", 2), ignored_error);
check等于2,因此服务器端没有问题。
我的Java客户端使用以下代码
接收数据Socket tcpSocket;
BufferedInputStream inFromServer;
...
String temp = "";
for(int i=0; i<2; i++)
temp += (char) inFromServer.read();
int num_of_filters = Integer.parseInt(temp); //Here the following error is thrown
java.lang.NumberFormatException: For input string: "0
我做错了什么?任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
我不确定,但我会从调查两端的编码开始。
然后收到字节并使用new String(byte[] bytes, Charset charset)
答案 1 :(得分:0)
您可能最好使用其中一个公共库来读取它,而不是自己逐个字节地进行读取。例如,使用apache commons IO你可以:
String temp = IOUtils.toString(inFromServer);