在tcp通信中,一个服务器可以对应很多个客户端,在信息的交互中,一定要注意信息的转发对象,因为有些需要私发,如聊天信息,有的需要群发,如游戏中各个角色的同步,所以在服务器转发信息时,一定要有一个判断,而这个判断我们可以通过map和hashmap来实现。
第一步:新建一个映射对象
Map<Integer,ObjectOutputStream> storeInfo = new HashMap<Integer, ObjectOutputStream>();
通过这个映射建立起转发时的判断机制,里面的参数因人而定,如我这个是将人物id和对应的客户端输出流联系
第二步:添加映射,在用户登录时,要是用put方法添加,put中的两个参数就是第一步设置的两个参数
第三部:在转发时调用不同的方法进行不同类型的转发
3.1私发:ObjectOutputStream oos = storeInfo.get(id);通过get方法和他的id来获得该客户端的输出流,将信息发出
3.2群发:ObjectOutputStream oos: storeInfo.values() 通过values()方法得到所有映射,发送给所有人