请教java的socket通信问题

naturezhj 2006-06-12 10:50:43
用java的socket进行tcp的数据传输时,怎么样通过同一个端口既传送String型的数据,然后又传送byte数组?是不是需要在socket里面分别new一个PrintStream和一个DataOutputStream?谢谢!
...全文
235 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mq612 2006-06-12
  • 打赏
  • 举报
回复
你写一个序列化的OutData类,将你的数据保存在这个类中,把该类通过Socket传送过去,这需要客户端与服务器都有这个类,如果嫌麻烦的话也可以把你的数据放到Vector中,传送Vector类。

public class OutData implements Serializable {
private String str = null;
private byte [] b = null;

public OutData(){
}
public OutData(String str){
this.str = str;
}
public OutData(byte [] b){
this.b = b;
}

public String getStr(){
return this.str;
}
public void setStr(String str){
this.str = str;
}
public byte[] getB(){
return this.b;
}
public void setB(byte [] b){
this.b = b;
}
}
沉珂 2006-06-12
  • 打赏
  • 举报
回复
Socket socket = new Socket(IPTextField.getText().trim(), 18880);
String un = jTextField1.getText().trim();
char[] pwd = jPasswordField1.getPassword();
String pwdStr = new String(pwd);
long id = Long.parseLong(un);
MsgPackage.LoginMsg loginMsg=new MsgPackage.LoginMsg(id,pwdStr);
ObjectOutputStream oop = new ObjectOutputStream(socket.getOutputStream());
oop.flush();
ObjectInputStream oip = new ObjectInputStream(socket.getInputStream());
oop.writeObject(loginMsg);
//ou.writeObject(new MsgPackage.MessageA("sizhen",23));
oop.flush();
MsgPackage.SystemMsg systemMsg=(MsgPackage.SystemMsg)oip.readObject();

loginMsg想当于你的outData。。。。
naturezhj 2006-06-12
  • 打赏
  • 举报
回复
那再请教一下,怎么样通过socket将该OutData传送出去呢?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧