如何利用C#和socket做出一个类似QQ的聊天软件

如何利用C#和socket做出一个类似QQ的聊天软件,第1张

大概说说吧,细节跟代码真不是三两行的事就不多提:

方案一:

TcpClient与Tcplistenler来完成服务器客户端之间的交互,后面的事情交给UDP,采用最原始最古老、最麻烦的技术、UDP穿透NAT使客户端与客户端建议连接机制完成后续的消息传递。

其中还有点相对“打洞”简单但是又比较麻烦的是TCP的粘包处理。

方案二:

简单好处理,缺点是对服务器的要求信旁纳更高。

客户端彼此之间不产生交互,通过webclient、webhttpresponse、webhttprequest、或webservice、或wcf 与通过http的方式与服务器进行交互,客户端需要轮询从消息队列中获取属于自身的消息体。

方案三:

采用基于TCP的服务器中转的方式,客户端与客户端之间无直接交互,客户端发起送消息时先到达服务器,服务器根据发起端指定的目标客户端通过Tcp发送数据包至目标客户端。

方案四:

把上面的三种方案结合起来,登陆用启昌tcp,握手包指令发起通过服务器中转、文件发送采用tcp

、普通消息采用udp、公告通告、聊在记录上传至服务器保存等采用http、个人信息修改等采用webservice、wcf、remoting。

附:可大可小,这不是个滑没问题,这应该是个项目,这个生态可以很庞大。

首先VS中的模板WCF SERVICE APP 项目碰亏,是一个承载到IIS的服务,用过web service就清楚,部署都差不多。

客户端引用wcf服务,知道url地址就行了,客户端添加服务引用,和添加以前的web service差不多。

客户端使用到服务端的数据模型,在服务端定义实体类时,笑尺神添加 datacontract属性和datamember属性就ok.

推荐一些教程地址,可以选择了看看,你提到的这些问题在教程中都有涉及到。

1,WCF系列学习5天速成 http://www.cnblogs.com/huangxincheng/category/340145.html

2,WCF入门困宏学习【Sheldon_Lou】http://www.cnblogs.com/sheldon-lou/category/648478.html

3,无废话WCF系列教程 http://www.cnblogs.com/iamlilinfeng/category/415833.html

4,WCF编程 http://www.cnblogs.com/zxj159/category/604460.html

5,WCF入门【停留的风】http://www.cnblogs.com/yank/category/568085.html

6,WCF初探【wangweimutou】http://www.cnblogs.com/wangweimutou/tag/WCF/

7,WCF【指尖流淌】http://www.cnblogs.com/zhijianliutang/category/277163.html

8,WCF【xfrog】---重点 http://www.cnblogs.com/xfrog/tag/WCF/

你要不想跨平台使用,还是WPF吧,绚丽又轻松,而且可以使用WCF来做你的通讯内核,更是轻松加愉快。

但是你要是想跨平枝圆台使用,比手搭蚂如有可能移植到手毕埋机平台,那只有用QT没选择了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12532962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存