如何开发类QQ聊天软件?

laj0600310219 2010-11-24 08:45:27
前面发了一个帖子:http://topic.csdn.net/u/20101122/16/3579ad86-dfc7-4835-8c4a-14016ca7bd40.html
这个问题扯得好像有点远了,可能是我问题没有描述的清楚。我现在再重新描述一下吧。

1、我现在只是想进一步学习C#,所以才想到要开发一个类似QQ的东西来学习的。基本的功能现在已经有了:语音、视频、文件传输、截图、远程桌面、闪屏、图片表情发送等功能。但是这些功能很多都是一些独立的模块,然后结合在一个程序里面。就是说点击某一个功能模块的按钮的时候,会另外弹出窗体,不像QQ那样,都是在聊天窗体的右侧进行显示的。所以,我现在想把所有的这些功能都集中在聊天窗体的右侧显示,不用分别弹窗。这就回到帖子了http://topic.csdn.net/u/20101122/16/3579ad86-dfc7-4835-8c4a-14016ca7bd40.html的问题1跟问题2了。

2、关于客户端的聊天记录:聊天也可以实现基本的聊天记录保存。就是通过rtf的格式进行保存,然后也可以读取出来。有的朋友说用.txt来保存,现在问题是,比如说你有N多个好友,难道每一个好友都建一个.txt文本进行保存吗?然后读取出来的时候你怎么去区分跟某一个人的聊天记录,然后再显示到对应的聊天窗口中去?

3、关于服务器端的聊天记录:同样的,数据库里面的表该如何建立,在读取的或者检索的时候,才能更方便的按照时间、或者姓名、或者某些关键字来更方便快捷的把相关的信息读取出来?欢迎指点,谢谢。
...全文
643 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxp791820798 2011-08-26
  • 打赏
  • 举报
回复
怎样从DataTable中读取聊天记录........
laj0600310219 2010-12-16
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 mick114 的回复:]
我也很想要你的程序学习学习哦。
尤其,qq的消息是什么格式的呀。我用rtf只要加图片就好大哦。但是我发现qq聊天记录中的图片是有单独的路径保存的,这个怎么弄的,还有聊天中的表情也类似。
[/Quote]
你加图片的时候,需要进行分块发送。。。。至于表情,你可以只发送表情的代号过去,然后对方接收到你传输过去的代号好,再匹配自己本地的表情,显示出来就可以了。这样,就不用传表情过去,速度就快了很多了。。
l_abcd 2010-12-16
  • 打赏
  • 举报
回复
等待中,哈哈哈哈
Mick114 2010-12-07
  • 打赏
  • 举报
回复
我也很想要你的程序学习学习哦。
尤其,qq的消息是什么格式的呀。我用rtf只要加图片就好大哦。但是我发现qq聊天记录中的图片是有单独的路径保存的,这个怎么弄的,还有聊天中的表情也类似。
laj0600310219 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 lcamp 的回复:]
多学习,多编程
[/Quote]
正在不断学习中。。。
lcamp 2010-11-28
  • 打赏
  • 举报
回复
多学习,多编程
Angle_DOTA 2010-11-28
  • 打赏
  • 举报
回复
同样有兴趣学习 帮顶
laj0600310219 2010-11-27
  • 打赏
  • 举报
回复
高手呢?
laj0600310219 2010-11-27
  • 打赏
  • 举报
回复
怎么会是空的呢?这里http://download.csdn.net/source/2654937不能下载吗?
redpeach10 2010-11-27
  • 打赏
  • 举报
回复
你的这个软件可以发给我下么。。下载是空的··
邮箱是81231269@qq.com谢谢了·
laj0600310219 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 sp1234 的回复:]
说白了,你就用.txt文件保存好了。有勇气去用.txt文件来实现一个版本,遇到了问题可以问(比如“如何区分聊天记录属于哪一个人”这根本不算什么问题),但是前提是先做出一个版本。做了第一个之后,并且好好地测试其多用户使用的功能,然后等你将其中某几个业务逻辑操作的功能涉及的模块进行第二个、第三个重构实现时自己就会做设计师(而不需要再问这么多)了。
[/Quote]
用txt不能保存图片,我已经用rtf格式实现了一个单用户的本地保存的版本。。。接下来也将会运用你的说法尝试进行其他的重构。。。。
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 laj0600310219 的回复:]
这么高深。。。[/Quote]是你根本就在自我纠结中,看不到前路。
  • 打赏
  • 举报
回复
说白了,你就用.txt文件保存好了。有勇气去用.txt文件来实现一个版本,遇到了问题可以问(比如“如何区分聊天记录属于哪一个人”这根本不算什么问题),但是前提是先做出一个版本。做了第一个之后,并且好好地测试其多用户使用的功能,然后等你将其中某几个业务逻辑操作的功能涉及的模块进行第二个、第三个重构实现时自己就会做设计师(而不需要再问这么多)了。
laj0600310219 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sp1234 的回复:]
引用 6 楼 laj0600310219 的回复:
基本的功能以及基本实现了,只是现在在保存聊天记录这一块,不知该如何组织数据结构。。。


你拿出块豆腐,我告诉你如何“砸死人”。怕就怕你整天在那研究“要拿个啥东西”,那么我能跟你说什么呢?

其实好的程序员是可以先做出来东西,然后有闲工夫的时候去重构的。而且它和不会像无头苍蝇那样,总是推倒了重做。

反倒是整天研究底层数据库表如何……
[/Quote]
这么高深。。。
laj0600310219 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 raolei521 的回复:]
你可以再广域网上聊天吗
[/Quote]
不可以,用的是UDP协议。。。
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 laj0600310219 的回复:]
基本的功能以及基本实现了,只是现在在保存聊天记录这一块,不知该如何组织数据结构。。。
[/Quote]

你拿出块豆腐,我告诉你如何“砸死人”。怕就怕你整天在那研究“要拿个啥东西”,那么我能跟你说什么呢?

其实好的程序员是可以先做出来东西,然后有闲工夫的时候去重构的。而且它和不会像无头苍蝇那样,总是推倒了重做。

反倒是整天研究底层数据库表如何定义的人,做不出来东西。
cy_paul 2010-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hankerstoic 的回复:]
实现思想很简单,网络编程+多线程就ok了
[/Quote]
保存聊天记录推荐在客户端程序实现吧! 可以参考QQ啊!QQ在指定目录里保存着图片、聊天记录等!!
此条如果对你有帮助,请给高分!!
主要用到的有网络管理类,象UDPClient,TCPListener 类等。
ctr54188 2010-11-27
  • 打赏
  • 举报
回复
新手学习中!!!
麦麦_同学 2010-11-27
  • 打赏
  • 举报
回复
lz可否把你的语音、视频、文件传输、截图、远程桌面、闪屏、图片表情发送等功程序代码给我一份研究研究 非常感激 我现在很空虚不知道做啥 谢谢我的邮箱397653714@qq.com thank 有
麦麦_同学 2010-11-27
  • 打赏
  • 举报
回复
你可以再广域网上聊天吗
加载更多回复(10)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧