java Socket通信,客户端实现好友列表
privatestaticList<Socket>mClientList=newArrayList<Socket>();mClientList.add(client);/...
private static List<Socket> mClientList = new ArrayList<Socket>();
mClientList.add(client);//这里存的是好有
mPrintWriter = new PrintWriter(client.getOutputStream(), true);
mPrintWriter.println(mClientList);//把好友传到客户端
问题是我在客户端怎么接收呢??
Bufferedreader里的readLine()反回来的是字符串,我在客户端能不能得到socket对像呢?? 展开
mClientList.add(client);//这里存的是好有
mPrintWriter = new PrintWriter(client.getOutputStream(), true);
mPrintWriter.println(mClientList);//把好友传到客户端
问题是我在客户端怎么接收呢??
Bufferedreader里的readLine()反回来的是字符串,我在客户端能不能得到socket对像呢?? 展开
3个回答
展开全部
问题一:客户端接收可以采用下列步骤:
1、无论客户端还是服务器都要有能力构造实体Bean(比如叫做UserBean,存放用户信息),构造UserList封装UserBean数组。并且,上述类要支持序列化和反序列化。
2、服务端将List<UserBean>UserList序列化,然后利用ServerSocket发送。
3、客户端利用Socket接收,对UserList反序列化,遍历UserBean数组得到每一个用户的信息。
问题二:对于Socket,不存在得到还是得不到的——
你要利用Tcp、Udp协议先要构造和初始化Socket才行。
客户端Socket和服务端Socket进行全双工通信。
即使是最简单IM演示程序,用户的好友列表都应该考虑在服务器端持久化和管理。
客户端程序要想得到其好友列表,只需要执行一次”请求/响应”即可。写这方面的程序,可以参考XMPP相关技术。
1、无论客户端还是服务器都要有能力构造实体Bean(比如叫做UserBean,存放用户信息),构造UserList封装UserBean数组。并且,上述类要支持序列化和反序列化。
2、服务端将List<UserBean>UserList序列化,然后利用ServerSocket发送。
3、客户端利用Socket接收,对UserList反序列化,遍历UserBean数组得到每一个用户的信息。
问题二:对于Socket,不存在得到还是得不到的——
你要利用Tcp、Udp协议先要构造和初始化Socket才行。
客户端Socket和服务端Socket进行全双工通信。
即使是最简单IM演示程序,用户的好友列表都应该考虑在服务器端持久化和管理。
客户端程序要想得到其好友列表,只需要执行一次”请求/响应”即可。写这方面的程序,可以参考XMPP相关技术。
展开全部
当然得不到! Socket 对象实例只能存在于建立它的主机上, 不能被序列化并传递!
你程序中的client不是好友, 只是与对方建立的Socket连接,是暂时的!
你程序中的client不是好友, 只是与对方建立的Socket连接,是暂时的!
追问
client存的是客户端的IP地址,我只要取出这个IP我就能指定那个客户端聊天了
追答
你在服务端获得的Socket是由Client 发起建立的, 可以通过 Socket 获得Client端IP;但你的Client端应该不能直接与对方Client端建立连接,如果确实要这么做,建议查阅P2P技术.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询