传输一个String我懂,把String转换为字符数组再传输,但是字符串数组该怎么办呢?
PS:我想把好几个字符串一次性传过去,于是想用字符串数组,但是不知道该怎么做,谢谢各位大神
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
最佳回答 专家已采纳可以把数组所有的字节拼装放入一个byte【】中传递。示例代码:
public class Main { public static void main(String[] args) { String[] datas = {"hello","world","I"}; try { //待发送的数据 byte[] dataToSend = toByteArray(datas,"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } public static byte[] toByteArray(String[] datas,String charset) throws UnsupportedEncodingException{ byte[] result = new byte[0]; if(datas==null||datas.length==0){ return result; } if(charset==null||"".equals(charset)){ charset = "utf-8"; } //存储数组中每个元素的byte[]字节数据 List<byte[]> list = new ArrayList<byte[]>(); //统计字节总长度 int length = 0; for(String data:datas){ byte[] byteArray = data.getBytes(charset); length+=byteArray.length; list.add(byteArray); } //将字符数组的字符串统一放入一个byte字节数组中 result = new byte[length]; int index = 0; for(int i = 0;i<list.size();i++){ byte[] byteArray = (byte[])list.get(i); int byteLength = byteArray.length; System.arraycopy(byteArray, 0, result, index, byteLength); index+=byteLength; } return result; } }
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(1条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2015-05-14 11:52回答 2 已采纳 可以把数组所有的字节拼装放入一个byte【】中传递。示例代码: ``` public class Main { public static void main(String[] args
- 2021-08-17 20:29回答 1 已采纳 傻了,没点开接收端的控制台!!!!!!!!
- 2019-03-19 12:00回答 1 已采纳 是不是服务端重复运行了? JieShou.class是死循环,只需要运行一次就可以了。
- 2021-03-07 22:49素寰韶的博客 JAVA中字符串如何与整型数字相加package kece;public class JavaAppArguments {public static void main(String[] args){System.out.println("参数个数:"+args.length);int sum=0;//定义初始相加和等于零for(String ...
- 2021-02-12 14:23Call 我crazy的博客 直接操作udp不可能,对于java语言应该将udp封装成对象,易于我们的使用,这个对象就是DatagramSocket. 封装了udp传输协议的socket对象。因为数据包中包含的信息较多,为了操作这些信息方便,也一样会将其封装成对象...
- 2021-02-12 16:05GordonYan95的博客 java对获取的字节数组bytes[]进行处理:第一种,直接将该字节数组转换为字符串(部分):String content = new String(dp.getData(),0,2); //从位置0开始获取2个字节这样,对获取的数据报进行全部转换:String content ...
- 2015-01-13 13:07回答 2 已采纳 [UDP 多线程服务端 和 简单客户端](http://cuisuqiang.iteye.com/blog/1726644 "UDP 多线程服务端 和 简单客户端") [【Java TCP/IP
- 2017-05-07 06:04回答 4 已采纳 你这样写 //触发事件 class rfListener implements ActionListener{ @Override public void actionPerformed(Ac
- 2017-02-05 08:47回答 2 已采纳 你编译java文件就是编译java文件,如果在这个java文件中用到了别的类,而这个类又不是你现在的系统环境的jre有的类,这时候就会报找不到类了,这时候就不能单独编译这个类了,你需要同事编译所有需要
- 2021-02-12 15:56aheemi的博客 你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。InetAddress类内部隐藏了地址数字。InetAddress类中的工厂方法InetAddress类没有明显的构造函数。为生成一个InetAddress对象,...
- W-Pwn的博客 用上TCP,先启动服务器的部分,之后开启客户端,之后用客户端发送信息给服务器package TCP;import java.io.*;import java.net.*;public class TCP服务器 {public static void main(String[] args) throws Exception{...
- 2022-04-22 15:13老坛酸菜吃鸭子的博客 import java.io.ByteArrayInputStream; import java.io.IOException;...import java.net.DatagramSocket; public class ReceiveDemo { public static void main(String[] args) throws IOException, C.
- 2018-05-25 07:42回答 7 已采纳 你这个是获取同一个局域网的mac,公网上是获取不到终端的mac的,除非通过web 插件本地获取再上传
- 2015-12-12 04:12回答 1 已采纳 测试了,可以运行的。先运行UdpReceive类,这类似服务器;然后启动LoginJieMain类,发送文件。 你的选择文件按钮的响应代码为空,所以不能选择文件,点击发送时可以输出这个操作的用时。
- 2016-11-25 16:43回答 1 已采纳 https://zhidao.baidu.com/question/562720478.html
- 2019-03-01 13:38107国道道长的博客 不谈理论,先举简单例子。 发送端代码: public class UDPDemo { ... DatagramSocket ds = new DatagramSocket(); String str = "hello"; DatagramPacket dp = new Data...
- 2021-02-28 17:58哥谭市原住民的博客 我用的是DatagramPacket方法DatagramPacket(data,length,host,port)其中data是一个byte[]data如果是一个字符串我知道怎么做比如Stringmes="helloandroid";byte[]bytesa=mes.getBytes(...我用的是DatagramPacket方法 ...
- 2021-03-13 05:09物间宁人的博客 * TCP* 特点:面向连接,点对点的通信,效率较低,但安全可靠* UDP:用户数据报协议,类似于发报机* 特点:非面向连接,可以广播发送,效率较高,但传输不可靠* java.net.DatagramSocket: 此类表示用来发送和接收数据报...
- 2015-10-12 06:02回答 2 已采纳 。。。。。。已解决,谢谢
- 2022-04-02 17:56ning030907031016的博客 一、Java网络编程 网络编程不等于网站编程,网络编程即使用套接字来达到进程间通信,现在一般称为TCP/IP编程。 (1)软件体系结构分类 ① C/S结构 全称Client/Server结构,是指客户端和服务器结构。常见程序有...
- 没有解决我的问题, 去提问