gpt4 book ai didi

java - 如何在java中的1个套接字中发送2种不同类型的数据

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:23 26 4
gpt4 key购买 nike

有人可以帮助我通过 1 个套接字仅从 android 到 java 服务器发送 2 种不同的数据类型...我必须一起发送一个数组和一个字符串。它使应用程序崩溃

   private void Send()
{
Thread t = new Thread() {

public void run() {

try {

Socket s = new Socket("192.168.0.3", 7000);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());

out.writeObject(array);
out.flush();
out.close();

DataOutput out1 =new DataOutput(s.getOutputStream());
out1.writeUTF(id);
out1.flush();
out1.close;
s.close();

} catch (UnknownHostException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();

Toast.makeText(MainActivity.this, "Message Sent !", Toast.LENGTH_SHORT).show();
}

最佳答案

我假设您的代码中的错误是您的套接字的输出流已全部关闭。问题是,如果关闭任何类型的流,所有底层流也会关闭。因此,如果您关闭 ObjectOutputStream,来自套接字的流也会自动关闭。

如果我是您,我会创建一个新类来保存您需要的所有数据,并仅发送该类的一个实例。

    class TempObject {

public TempObject(Object[] array, String id) {
this.array = array;
this.id = id;
}

public Object[] array;
public String id;
}

private void Send() {

TempObject obj = new TempObject(array, id);
Socket s = new Socket("192.168.0.3", 7000);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(obj);
out.flush();
out.close();
}

关于java - 如何在java中的1个套接字中发送2种不同类型的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com