A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© heheka123 中级黑马   /  2014-4-22 15:16  /  1131 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在看毕老师讲UDP的时候,模拟出了一个聊天系统,这个聊天系统,一直是客服端和服务器的通讯,如果我要实现客户端与客户端的通讯,应该怎么办呢, 就好比QQ 肯定是我们先把消息发给腾讯的服务器,然后腾讯的服务器再发给跟我的好友的,那这样的话,怎么才能区分多并发下的数据包不会发错呢,  是不是现在初级阶段解决不了这个问题啊?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
原理应该是这样的,我给一位好友通讯的时候,我会向服务器发送一个请求获取好友的当前ip地址并把我的ip地址也发给服务器,然后服务器根据我的请求向我的好友索取ip地址,并把我的地址发送给好友,再根据收到我的好友的消息判断他是否在线,如果在线就把他的ip地址告诉我,然后我们之间就可以聊天了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
可以考虑客户端和服务端写在一个java文件中,使用多线程技术。
思路是酱紫:
客户端写一个类实现Runnable
服务端写一个类实现Runnable
客户端和服务端的内容写在run()方法中
在主函数main中,
new Thread(new Client(new DatagramSocket())).start()
new Thread(new Server(new DatagramSocket(port))).start()
意思就是在主函数new 两个线程,分别是客户端和服务端
这样你看,我能发信息,也能接受信息,满足需求了吧

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
:lol我这两天刚好 在通过学的内容 写这个 完全是java基础写的 因为别的我也不会
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马