在做一个局域网内多用户聊天室
本帖最后由 baiyang0817 于 2011-04-19 11:14 编辑
初学linux,想做一个局域网内多用户聊天室。 类似qq的功能,能支持多用户之间的单对单通话、群聊等; 后续如果有时间,打算把视频、音频传输功能也加上。
看了一些资料,说是用GTK可以做界面,效果比较好。尝试一下。
请各位大虾拍拍砖。。。。
我会把具体的想法和流程通过回复的形式一步步体现出来。最后程序完成后把代码上传。
现在已经能实现通过代理服务器的多用户直接的通信了,我在下面已经把大体的流程图列出来了。(2011.4.19)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
学习中…………
围观
www.crazyhadoop.com
最最初步的通信部分已经实现咯。 现在能实现两用户之间没经过代理的通信。 主要是用循环的方式做的,即主线程处理本端的信息发送,创建一个子线程循环读取对方发来的信息并做相应操作。
作图还没开始做。
接下来打算先实现有代理的两用户之间的通信。
回复 4# baiyang0817
可以考虑先实现多人群聊, 然后服务器 给用户推送信息。算是即时通信吧。
回复 5# crazyhadoop
恩,正在尝试呢,谢谢你到关注。。。
现在已经实现有代理服务器的多用户之间的通信了。昨天用了一天时间编码调试, 喔喔。。。
流程图如下(参照别人的做法):
1565cc6e775152a8421694e9.jpg (59.33 KB, 下载次数: 45)
下载附件
2011-04-19 11:01 上传
socket编程一般流程如下:
一般流程.jpg (22.85 KB, 下载次数: 21)
下载附件
2011-04-19 11:03 上传
在前一个程序基础上进行改进,服务端程序做了较大改动。主要是要进行以下操作:客户端地址映射、报文解析、消息转发。
期间遇到一些问题:同一客户端关闭之后再上线时收数据异常; 服务端的循环数据接收没清空上次的缓存;另外一些小问题。
接下来的打算是:把大体的界面做出来,包括登录、收发窗口等。初步准备用GTK+来做。
程序大体完成之后,我会把代码上传上来滴。。。
最近忙于工作,拖延了一段时间。
现在已经用GTK+把大体的界面做出来了,包括登录和收发窗口等,适用于多客户端。 界面很粗糙,但基本的功能都实现了。
接下来的打算是:实现文件的压缩传输,打算用lz77算法实现。 然后尝试做图像压缩传输、音视频压缩传输,这两块貌似很有难度, 要花很多时间。
求代码