java socket发送数据的类型 20

是socketudp只能用String定义数据吗?如果不是,我想发送int定义的数据该怎么写?... 是socket udp只能用String定义数据吗?如果不是,我想发送int定义的数据该怎么写? 展开
 我来答
pieryon
2015-06-08 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166868
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
在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),就能把它写出去了。
另一方接受的时候,把这个接收到的数组再转回来就是了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由翱祥xiang
2021-04-02 · 贡献了超过105个回答
知道答主
回答量:105
采纳率:0%
帮助的人:7.1万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式