java接收数组(java怎么接收数组)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享java接收数组的知识,其中也会对java怎么接收数组进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
- 1、使用Java 1用socket程序发送和接收字节数组 2用十六进制的形式显示每个字节里面的内容
- 2、JAVA服务器接收byte数组的问题
- 3、java后台怎么接收前端传过来的json数组
- 4、java后台怎么收到前端传过来的二维数组
- 5、Java ,从scanner接收十个数字的数组,然后输出数组中最大的数和这个数位
使用Java 1用socket程序发送和接收字节数组 2用十六进制的形式显示每个字节里面的内容
我们定义发送者和接收者,发送者作为客户端,接收者作为服务端。
Sender.java
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Arrays;
public class Sender {
public static void main(String[] args) throws Exception {
// 127.0.0.1 代表本机地址,在 8888 端口上监听
Sender sender = new Sender("127.0.0.1", 8888);
byte[] bytes = {15, 16, 17, 120}; // 对应的十六进制是 0F 10 11 78
sender.send(bytes);
System.out.println("发送" + Arrays.toString(bytes) + "完毕!");
}
private final String host;
private final int port;
public Sender(String host, 笑敏余int port) {
this.host = host;
this.port = port;
}
private void send(byte[] bytes) throws IOException {
Socket socket = new Socket(host, port); // 建立和服务端的 socket
try (DataOutputStream dos // 碰滚建立输出流
= new DataOutputStream(socket.getOutputStream())) {
dos.write(bytes, 0, bytes.length); // 向输出流写入 bytes
}
}
}
Receiver.java
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Receiver {
public static void main(String[] args) throws Exception {
Receiver receiver = new Receiver(8888);
receiver.receive();
}
private final ServerSocket serverSocket;
public Receiver(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
private void receive() throws IOException {
System.out.println("等待客户端连接...");
Socket socket = serverSocket.accept();
try (DataInputStream dis = new DataInputStream(socket.getInputStream())) {
byte[] bytes = new byte[1024]; // 假设发送的字节数不超过 1024 个
int size = dis.read(bytes); // 拿销size 是读取到的字节数
String hex = bytesToHex(bytes, 0, size);
System.out.println("接收到的byte数组的十六进制:" + hex);
}
}
/**
* 将 byte 数组转化为十六进制字符串
*
* @param bytes byte[] 数组
* @param begin 起始位置
* @param end 结束位置
* @return byte 数组的十六进制字符串表示
*/
private String bytesToHex(byte[] bytes, int begin, int end) {
StringBuilder hexBuilder = new StringBuilder(2 * (end - begin));
for (int i = begin; i end; i++) {
hexBuilder.append(Character.forDigit((bytes[i] 0xF0) 4, 16)); // 转化高四位
hexBuilder.append(Character.forDigit((bytes[i] 0x0F), 16)); // 转化低四位
hexBuilder.append(' '); // 加一个空格将每个字节分隔开
}
return hexBuilder.toString().toUpperCase();
}
}
运行,首先启动服务端:
然后启动客户端:
查看接收结果:
JAVA服务器接收byte数组的问题
可以这样塌激做,
但没团咐袜有读取内容简耐时,inputStream.read(left)会一直等待读取,直到有数据接入或者抛出超时异常,
java.net.SocketTimeoutException

java后台怎么接收前端传过来的json数组
你用到Struts2框架了吗?
一般接孙薯收参数都则洞者是String row011 = request.getParameter("颤正row011");
java后台怎么收到前端传过来的二维数组
struts2的话直接在action中声明为String[][] roles就好缓信禅。
其他情况,可以坦乎通过遍历request.getParameterMap()对象,根据name自己组装一个roles的扰尘二维数组。
Java ,从scanner接收十个数字的数组,然后输出数组中最大的数和这个数位
说说思路
你这里涉及到两个问题,一是如何把输入的数字接收进来放橘弯到数组里面,二枝槐是找到这个数组的最大值;
第一个问题,循环输入,定义一个索引,输入一个数字,所以加加
for(int index;index10;index++){
arr[index]=scanner.nextInt();
}
第二个问题,定义一个临时变量存贮最大的数的索引,循环从前往后查找,找到最大的数;
int maxIndex=0;
for(int i=0;iarr.length();i++){
if(arr[i]arr[maxIndex]){
maxIndex=i;
}
}
纯手圆搭闷打,请采纳
关于java接收数组和java怎么接收数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
