黑马程序员技术交流社区
标题:
为什么socket[i].getOutputStream()这样是错的呢
[打印本页]
作者:
山水游客
时间:
2012-7-1 21:21
标题:
为什么socket[i].getOutputStream()这样是错的呢
static List<Socket> socket;
DataOutputStream out=null;
DataInputStream in=null;
String s=null;
ServerThread(List<Socket> socketlist){
socket=socketlist;
for(int i=0;i<socket.size();i++){
try{
out=new DataOutputStream(socket[i].getOutputStream());
in=new DataInputStream(socket[i].getInputStream());
}catch(IOException e){
}
}
}
socketlist是从别的地方传过来的,现在我想用循环去写和读所有连接到服务器端的socket
out=new DataOutputStream(socket[i].getOutputStream());
in=new DataInputStream(socket[i].getInputStream());为什么socket[i].getOutputStream(),socket[i].getOutputStream()这样是错的呢?
作者:
赵志勇
时间:
2012-7-1 21:45
socket[i].getOutputStream()?是socket[i]么?没见过这种样式的。
socket[i]是不是socket.get(i)楼主给写错了吧
作者:
谭立文
时间:
2012-7-1 23:15
本帖最后由 谭立文 于 2012-7-1 23:27 编辑
取出Object的方法不是socket
而是:socket.get(i);
或者你用加强的for循环迭代也可以,这里是因为List <E>实现了Iterable<E>接口才可以这样用。
for(Socket soc: socket)
{
}
我最小限度改你的代码的情况下改了的代码。
List<Socket> socket;
DataOutputStream out=null;
DataInputStream in=null;
String s=null;
ServerThread(List<Socket> socketlist)
{
socket = socketlist;
for(Socket soc: socket)
{
try{
out = new DataOutputStream(soc.getOutputStream());
in = new DataInputStream(soc.getInputStream());
}catch(IOException e){
}
}
}
还有我要提醒你这样处理客户端发送过来的消息肯定是有问题的,至于为什么,这里就不多给你解释了,如果还有什么不明白可以说,我才写了一个类似扣扣的课程设计,所以对这个还比较熟悉,希望对你有帮助。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2