Java Socket传输求助
请问各位高手,我在编写socket程序客户端向服务器传输数据的时候有这样的语句客户端:Stringx="abc";out.println(1);out.println(x...
请问各位高手,我在编写socket程序客户端向服务器传输数据的时候有这样的语句
客户端:String x = "abc";
out.println(1);
out.println(x);
服务器:int code;String a;
code = in.read();
a = in.readLine();
//测试用 b = in.readLine();
//我的目的是传输一个整型的1,之后接受一个字符串,也就是code = 1;a="abc";
但服务器接收时就变成了ASCII码49并且还多出一个空格,也就是说接收时,code = 49;而a="";测试后发现b = “abc” ;
如果实现定义一个整型变量int netcode =1 ; out.println(netcode);
结果也一样,请问这是怎么回事?难道不能传输整型吗?还是我接受的函数有问题,请各位帮帮忙,谢谢啦 展开
客户端:String x = "abc";
out.println(1);
out.println(x);
服务器:int code;String a;
code = in.read();
a = in.readLine();
//测试用 b = in.readLine();
//我的目的是传输一个整型的1,之后接受一个字符串,也就是code = 1;a="abc";
但服务器接收时就变成了ASCII码49并且还多出一个空格,也就是说接收时,code = 49;而a="";测试后发现b = “abc” ;
如果实现定义一个整型变量int netcode =1 ; out.println(netcode);
结果也一样,请问这是怎么回事?难道不能传输整型吗?还是我接受的函数有问题,请各位帮帮忙,谢谢啦 展开
2个回答
展开全部
通过socket传输的 其实全都是byte流 所以你自己接受后要处理
你通过println输出信息 那么你传出的信息其实都是字符串 并且是这样格式的
1回车
abc回车
in.read()为读取一个byte 所以你读取到的是1这个字符的ascii嘛 自己转换成1这个数字吧
然后由于in.read()并不换行 所以你下一个a = in.readLine()还是读取的1那一行 所以读到了一个空串
然后b = in.readLine()的时候才正确的读到了第二行的abc
你可以这样
String codeStr = in.readLine();
int code = Integer.parseInt(codeStr);
String a = in.readLine();
就对了
你通过println输出信息 那么你传出的信息其实都是字符串 并且是这样格式的
1回车
abc回车
in.read()为读取一个byte 所以你读取到的是1这个字符的ascii嘛 自己转换成1这个数字吧
然后由于in.read()并不换行 所以你下一个a = in.readLine()还是读取的1那一行 所以读到了一个空串
然后b = in.readLine()的时候才正确的读到了第二行的abc
你可以这样
String codeStr = in.readLine();
int code = Integer.parseInt(codeStr);
String a = in.readLine();
就对了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询