当前位置:编程学习 > JAVA >>

用java写一个局域网的聊天室,有聊天和传文件功能,关于流的使用不清楚!

用的c/s模式,传文件和聊天都是先传到服务器,在转发到客户端,我现在用的是DataInputStream和DataOutputStream,请问聊天内容的流和传文件的流需要分开吗?不分开的话文件没传完,会不会和聊天内容的流发生冲突!!!具体怎么实现比较好? --------------------编程问答-------------------- 回答具体点就好了  分开的话 问题是socket和serversocket只有两个流啊! --------------------编程问答-------------------- --------------------编程问答-------------------- 同一个socket冲突倒不会,可能无法同时接收吧,这个要实验下,或可改进。

还是要通过甄别数据类型来分别对待

发送

//to send
Socket s = ...
OutputStream os = s.getOutputStream();
if(messageIsText()){
  os.write(0);
  //send text
else{
  os.write(1); 
  //send file
}


接收:

Socket s = serverSocket.accept();
InputStream in = s.getInputStream();
int firstbyte = in.read();
if(firstbyte = 0){
   //read text
}
else{
   //read file
}
--------------------编程问答--------------------
引用 楼主 huweigoodboy 的回复:
用的c/s模式,传文件和聊天都是先传到服务器,在转发到客户端,我现在用的是DataInputStream和DataOutputStream,请问聊天内容的流和传文件的流需要分开吗?不分开的话文件没传完,会不会和聊天内容的流发生冲突!!!具体怎么实现比较好?

那个流可以分开也可以不分开。但是我一般的做法还是分开的。
因为你可以想象一下你QQ传文件和聊天的时候,那是进行的两次操作,每次操作产生一个输出流。 --------------------编程问答--------------------
引用 1 楼 huweigoodboy 的回复:
回答具体点就好了  分开的话 问题是socket和serversocket只有两个流啊!

这俩好像不是流,是两个SOCKET,SOCKET里面放流~ 应该是这样
--------------------编程问答-------------------- http://bbs.csdn.net/topics/390352988
看下这个 --------------------编程问答-------------------- 谢谢,收获很大 谢谢
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,