当前位置: 技术问答>java相关
奇怪的问题!!!!急!!!!
来源: 互联网 发布时间:2015-10-07
本文导语: 是这样的,我在建立socket互传信息时,一方发出了,但另一方却只能收到莫名其妙的信息,完全没有规律。(要传送的信息为一小于500000的整形量) 我的发出端代码为: public void write(int x ) { try{ out.write(x...
是这样的,我在建立socket互传信息时,一方发出了,但另一方却只能收到莫名其妙的信息,完全没有规律。(要传送的信息为一小于500000的整形量)
我的发出端代码为:
public void write(int x )
{
try{ out.write(x);
out.flush();
}catch(Exception e){}
}
其中out为:
out=new PrintWriter(new OutputStreamWrite(socket.getOutputStream()));
我的接收端为:
try{ temp=_ser.in.read();}catch(IOException e){}
其中in为:
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
到底那里错了???要怎么写才能传送数据,我只要能传个整形数据就好
救我!!!!
我的发出端代码为:
public void write(int x )
{
try{ out.write(x);
out.flush();
}catch(Exception e){}
}
其中out为:
out=new PrintWriter(new OutputStreamWrite(socket.getOutputStream()));
我的接收端为:
try{ temp=_ser.in.read();}catch(IOException e){}
其中in为:
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
到底那里错了???要怎么写才能传送数据,我只要能传个整形数据就好
救我!!!!
|
OutputStreamWrite是以字符流发送数据的,不是字节流,
write(int a)方法是写一个byte(a的低8位)不是int.
write(int a)调用OutputStreamWrite的write,对a进行UNICODE转码,所以你收到的当然是乱码。
write(int a)方法是写一个byte(a的低8位)不是int.
write(int a)调用OutputStreamWrite的write,对a进行UNICODE转码,所以你收到的当然是乱码。
|
楼上说得对,你重载吧。