![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
java socket发送数据的类型 20
是socketudp只能用String定义数据吗?如果不是,我想发送int定义的数据该怎么写?...
是socket udp只能用String定义数据吗?如果不是,我想发送int定义的数据该怎么写?
展开
3个回答
展开全部
在Socket通信中,要在客户端和服务端中传输数据,传输的数据有各种类型包括:int,short,long以及String,甚至是自定义的各种Object,如何能够保证在服务端和客户端之间的数据能够使得两端都能理解,这就是所谓的“应用协议“。
在通信的“管道”中,流的都是二进制数据,所以,双方如何约定好“解析规则”,则就必须要求通信双方都预先制定好协议。
在通信的“管道”中,流的都是二进制数据,所以,双方如何约定好“解析规则”,则就必须要求通信双方都预先制定好协议。
2014-05-13
展开全部
socket 可以发送 byte[ ] 类型的数据,你可以先把想要发送的数据转化为字节数组 (byte[ ])。然后写就行了
更多追问追答
追问
能具体点吗?
追答
首先,基本数据类型都能转成 byte 数组(boolean类型除外,不过可以用0和1代替),具体的转byte数组方法下面列一个 int 转 byte 数组的,其他的你自己去搞,如果连这个都不想搞都指望别人给你,那就没有意义了。
public static byte[] intToBytes(int v) {
byte[] b = new byte[4];
b[0] = (byte) ((v >>> 24));
b[1] = (byte) ((v >>> 16));
b[2] = (byte) ((v >>> 8);
b[3] = (byte) ((v >>> 0));
for(int i=0;i<b.length;i++)
System.out.println(b[i]);
System.out.println(Integer.toBinaryString(v));
return b;
}
假设上面转化来的 byte数组 为data ,而,socket.getOutputStream().write(data),就能把它写出去了。
另一方接受的时候,把这个接收到的数组再转回来就是了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询