服务器是一个servlet 用的是tomcat
服务器: public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html; charset=GBK"); try {
// 设置响应属性
// 接收客户端的请求
InputStream is = request.getInputStream();
ObjectInputStream dis = new ObjectInputStream(is);
@SuppressWarnings("unchecked")
ArrayList<Operation> readObject = new ArrayList<Operation>();
readObject = (ArrayList<Operation>) dis.readObject();
System.out.println("服务器已接收"); ObjectOutputStream dos = new ObjectOutputStream(response.getOutputStream());
dos.writeObject(readObject);
} catch (Exception e) {
e.printStackTrace();
}
}我有2个客户端 用的httpconnection和服务器相连 2个客户端和服务器通信没问题 但我想实现2个客户端之间的通信
我想实现的是 客户端A输入123 123能通过服务器 传给客户端B
但现在的情况是 客户端A输入123 123通过上面的服务器 又把123传回给了客户端A 客户端B什么也没收到
因为用的是ObjectInputStream ObjectOutputStream 感觉问题在这 ObjectInputStream接受到一个客户端的请求 然后处理 然后又把处理好的用OutputStream又传回给了该客户端
是不是该给两个客户端发送的消息加个ID 在SERVER判断之类的?这个服务器应该怎么改?谢谢
服务器: public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html; charset=GBK"); try {
// 设置响应属性
// 接收客户端的请求
InputStream is = request.getInputStream();
ObjectInputStream dis = new ObjectInputStream(is);
@SuppressWarnings("unchecked")
ArrayList<Operation> readObject = new ArrayList<Operation>();
readObject = (ArrayList<Operation>) dis.readObject();
System.out.println("服务器已接收"); ObjectOutputStream dos = new ObjectOutputStream(response.getOutputStream());
dos.writeObject(readObject);
} catch (Exception e) {
e.printStackTrace();
}
}我有2个客户端 用的httpconnection和服务器相连 2个客户端和服务器通信没问题 但我想实现2个客户端之间的通信
我想实现的是 客户端A输入123 123能通过服务器 传给客户端B
但现在的情况是 客户端A输入123 123通过上面的服务器 又把123传回给了客户端A 客户端B什么也没收到
因为用的是ObjectInputStream ObjectOutputStream 感觉问题在这 ObjectInputStream接受到一个客户端的请求 然后处理 然后又把处理好的用OutputStream又传回给了该客户端
是不是该给两个客户端发送的消息加个ID 在SERVER判断之类的?这个服务器应该怎么改?谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货