[英]Passing an ObjectOutputStream to another class
我正在开发一个GUI程序以在客户端/服务器系统中使用,它将数据保存在Vector
。 建立连接时会创建一个ObjectOutputStream
和ObjectInputStream
,但是当我尝试打开一个连接时,我不确定如何将其传递到新类中。 在我的Startup
类中,我有一个Serializable
对象( Message m
),该对象已创建并传递到不同的类中,以修改不同的字段,以及在客户端和服务器之间建立连接
在我的Startup
类中,我有以下代码...
m.yourName = tmyName.getText();
m.department = tdepartment.getText();
if (m.yourName != null && m.department != null) {
client = new Socket(server, port);
oout = new ObjectOutputStream(client.getOutputStream());
oin = new ObjectInputStream(client.getInputStream());
toutput.setText("Connected");
oout.writeObject(m);
new WhatToDo (m, oout, oin);
}
在WhatToDo
类中,我有此代码...
Message m;
ObjectOutputStream oout;
ObjectInputStream oin;
public WhatToDo(Message a, ObjectOutputStream oout2, ObjectInputStream oin2){
m = new Message();
m = a;
// this is what i'm unsure about and need help with
oout = oout2; //but need to construct oout first
oin = oin2; //but need to construct oin first
}
如果我像在Startup
一样执行新的ObjectOutputStream
和ObjectInputStream
,则将创建到服务器的新连接。 我希望使用WhatToDo
在Startup
中创建的现有Streams
。 提前谢谢你的帮助!
我使用的是带有按钮的ActionListener
,因此需要将流保存在构造函数中,以便以后在ActionListener
使用。
我希望使用现有的流
这正是您的代码现在所做的。 您对“但需要构建”的评论不正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.