【发布时间】:2012-11-14 14:57:27
【问题描述】:
所以这是交易: 我有一个正在运行的服务器,它不断地通过 TCP 套接字接受客户端:
public ArrayList<Socket> lista_users = new ArrayList<Socket>();
套接字;
s = serverSocket.accept();
lista_users.add(s);
avisa_all(lista_users, s);
Thread t_trata_cliente = new Thread(new trata_cliente(lista_users, s));
t_trata_cliente.start(); //this Thread is responsable for interacting with
//the clients (where my question is)
将套接字保存在数组列表中。 在我想向我的客户发送不同类型的信息之后(线程“trata_cliente”)。 当我说不同类型的信息时,我的意思是,首先发送一条警告消息,然后发送一个对象,然后发送一些消息,然后再次发送对象。
最好的方法是什么?
【问题讨论】:
-
接收方也是java应用吗?
-
是的,它是一个基于 java 的客户端。
-
没有“最佳”协议。有难以编码和解码(和版本)的“最密集”协议,然后是 Java 的原生序列化协议,它对短消息效率不高,然后是 JSON,然后是压缩 JSON……
-
这是一个更好地解释我自己的例子:服务器接受了一个客户端,如果将向所有客户端发送通知消息+(我不确定我是否必须再次发送新的用户数组列表) .然后,当服务器收到“message1”时,他会向所有用户发送一个对象(例如日历),依此类推......所有这些都使用 ObjectOutputStream,如果可能的话 xd
标签: java sockets tcp tcpclient