关羽java的socket传输字符串数组问题

我想用Socket传输一个字符串数组,BufferedReader又没有相关构造,getBytes()方法又行不通,请问有什么方法么,最好能有简单的代码,谢谢
注意啊,是字符串数组,不是字符串饿- -
最新回答
含朕的龙根

2023-03-03 11:34:18

给你一段代码,不知道能不能解决你的问题
可以直接传字符串,也可以将字符串数组封装对象进行传输。
服务端代码:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
public static void main(String[] args) throws Exception{
ServerSocket ss = new ServerSocket(9091);
Socket s = ss.accept();
System.out.println("new connection");
ObjectInputStream oi = new ObjectInputStream(s.getInputStream());
String [] arr = (String[]) oi.readObject();
System.out.println(arr[0] + arr[1]);
}
}
客户端代码:
import java.io.ObjectOutputStream;
import java.net.Socket;

public class Mysocket {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost",9091);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(new String[]{"123","232"});
out.flush();
out.close();
}
}
人不喂鸡天猪地灭

2022-03-07 03:56:28

java中socket是向某个特定地址的端口发送流(字符串通过getBytes方法转换成流)。

public static void main(String[] args) {
Socket s;
try {
s = new Socket("localhost",9091);

DataOutputStream out = new DataOutputStream(s.getOutputStream());
out.write("aslkjlksjdsad".getBytes());
out.flush();
out.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

备注:有发送的话,就需要相应的地址和端口上做一个接收的,来实现交互。

懵蓝初梦

2022-07-11 03:14:53

直接传数组?木听说。
可以在client和server端建立一种协议,如按照遇到什么样子的字符时进行分割,那么在客户端就能够将数组拼接字符串再传输。
或者将数组封装到一个类中,然后将类进行序列化后传输。
时光里

2022-11-12 23:55:13

循环按串的下标传