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);
结果也一样,请问这是怎么回事?难道不能传输整型吗?还是我接受的函数有问题,请各位帮帮忙,谢谢啦
展开
 我来答
Anson0370
2010-01-18 · TA获得超过1462个赞
知道小有建树答主
回答量:702
采纳率:100%
帮助的人:703万
展开全部
通过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();
就对了
祚胤17
2010-01-17 · TA获得超过786个赞
知道大有可为答主
回答量:1149
采纳率:82%
帮助的人:265万
展开全部
传一个byte,就是传一个整数,String就是由char/byte组成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式