你在服務器端,保存一個用戶的列表,用戶列表的信息,包含改用戶的Socket對象。定義發送規則。在服務器端解開數據,
根據發送的地址,對應查找用戶列表,如果找到,然後對應Socket 發送數據。
这种做法是不是只有在客户端连接到服务器才可以,如果没有连接到服务器,在用户列表就找不到对应的socket,这样就不可以发送了,是不是这样?如果我想在客户端没有连接到服务器的情况下发送信息给该客户端(这个时候可能在服务器端保存这个信息吧,但是怎么保存这个信息呢?是保存在数据库还是在内存中?),然后当该客户端连接上服务器后就把这个信息发给他.有没有这种做法,应该怎么做?
@叶海咏: 是的。
那你只能在本地保存發送的信息。如果連接上 服務器,然後再把以前的信息發送給服務器。然後刪除信息
首先要确认的是客户端必须先与服务器建立连接,这时候,服务端应该就保有了与C1和C2进行通讯的两个socket了,当收到C1要转发给C2的消息的时候,使用与C2连接的socket发送消息即可。