怎么通过条件给client编号,以方便client与指定的另一client通信?

向云 2015-09-28 08:27:41
一个连接存在于一个线程,怎么区别这些client谁是谁呢?最好有代码演示,感谢党!!!
...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
可乐罐 2015-10-09
  • 打赏
  • 举报
回复
错误信息是啥? 感觉是vector.add和vector.get两个方法没配套
向云 2015-10-09
  • 打赏
  • 举报
回复
这个问题,已经解决了哈,vector只能从0位置开始插入数据,从1位置是不能的,向指定位置插入数据,如果其后还有数据,则后面的数据向量位置+1,我对指定位置的数据操作结合remove()方法做到了,谢谢哈!
向云 2015-10-08
  • 打赏
  • 举报
回复
求大神帮帮忙啊
向云 2015-10-08
  • 打赏
  • 举报
回复
现在我知道用保存客户端列表的方法进行判断就可以实现了,但是在保存客户端列表方法上错了,帮我看看吧
static Vector<BufferedWriter> clients = new Vector(10);//保存客户端的连接信息 
ServerSocket server = new ServerSocket(1234);//服务器监听的端口号
MultiThreadServer mc = new MultiThreadServer(server.accept());//开始监听
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
//利用BufferedReader实现数据的快速接收,getInputStream()获取socket底层数据输入流,InputStreamReader()实现字节到字符串的高校读取
BufferedWriter out =new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
//利用BufferedWriter实现数据的快速写入,getOutputStream()获取socket底层数据输出流,OutputStreamWriter()实现字节到字符串的高校写入
clients.add(1,out);//使用的多线程哈,每个socket连接都有一个线程,保存当前客户端的连接信息(就是这里出错了)
BufferedWriter send = (BufferedWriter) clients.get(1);//取得指定客户端连接信息(就是这里出错了)
send.write("我发送给指定的客户端");
可乐罐 2015-10-08
  • 打赏
  • 举报
回复
每个线程给一个唯一的编号供程序查询就行了啊,还需要样例代码?

62,614

社区成员

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

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