有关多线程和socket问题???

mrlining1 2004-03-23 03:33:11
我在一个多线程的类中有如下代码
....
....
public class ProcessRequest implements Runnable{
....
....
private Socket socket;
private ChatServer server;
private DataInputStream inputStream;
private DataOutputStream outStream;

public ProcessRequest(ChatServer server, Socket socket) throws IOException{
this.socket = socket;
InetAddress inet = socket.getInetAddress();
userIP = inet.getHostAddress();
this.server = server;
outStream = new DataOutputStream(socket.getOutputStream());

// inputStream = new DataInputStream(socket.getInputStream());

}
public void run() {
String accept, cmd;


while (true) {
try {

outStream.writeUTF("hello");

}



} catch (Exception e) {
}
break;
}
}
.......
.....
其中// inputStream = new DataInputStream(socket.getInputStream());
为什么注释掉就好使,将注释去掉,就无法将数据送出。难到inputstream 和outputstream不能同时得到?????或者是因为多线程的问题,是否要使用同步???
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwowen 2004-04-07
  • 打赏
  • 举报
回复
是不是new DataInputStream(InputStream stream)在stream中没有可读数据时阻塞了,new ObjectInputStream(InputStream stream)时是这样的。
thunderxs 2004-03-24
  • 打赏
  • 举报
回复
socket连接一旦建立,就可以双向通信了。同意 jimjxr(宝宝猫)
jimjxr 2004-03-24
  • 打赏
  • 举报
回复
当然能同时得到,TCP是双向的,别的地方有问题。
dengyin2000 2004-03-24
  • 打赏
  • 举报
回复
对 接受 和发送因该在两个线程中、
yqydaful 2004-03-24
  • 打赏
  • 举报
回复
学习

62,628

社区成员

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

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