关于c#编写的聊天软件,服务端在具有公网ip一端,客户端在不同的内网,那么不同的客户端之间如何进行通讯?

山空云静 2013-12-21 04:08:00
最近在做一个类似于qq的通讯软件。最基本的需要就是和qq一样,可以发聊天信息,图片,文件。如果这些都是局域网通讯软件的话,应该不是很难。可是偏偏要不同的客户端在不同的内网之间可以进行通讯,我使用的是udp协议,因为好多人告诉我需要用到udp穿透,不同内网间通信。网上例子很多,可以用的不多,还有好多都是其他语言编写,想求一份c#的demo,有做过相关程序的大神望帮忙!
...全文
327 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuawang 2013-12-23
  • 打赏
  • 举报
回复
sp1234大神快加她QQ吧,是妹子哦,可以视频指导的
sunylf 2013-12-23
  • 打赏
  • 举报
回复
關注.....
家鸣 2013-12-23
  • 打赏
  • 举报
回复
不做路由配置的情况下,目前IPv6没有完全普及,还是老老实实打洞穿透吧。 不同的客户端在同一个nat后, 这种情况不需打洞。 对于多层nat, 这种情况不需分开处理。
devmiao 2013-12-22
  • 打赏
  • 举报
回复
通过公网转发或者udp打洞。
山空云静 2013-12-22
  • 打赏
  • 举报
回复
倦怠,这几个网络在互联网的不同地方啊!
山空云静 2013-12-21
  • 打赏
  • 举报
回复
sp1234 大神,留下qq,好不???加我1225119390
  • 打赏
  • 举报
回复
谁也没有说“不可以”。其实这是很简单的东西,就好像我说“我可以每周换一个女朋友”对于外人来说也是可以的。其实如果那样,我早就死了。 我用QQ的例子,因为我做过真正的(至少)几千万用户的IM。我倒是很想知道网上忽悠之后,有哪些证据证明QQ是依靠什么“udp打洞技术”来获得半点产品优势的?
江湖评谈 2013-12-21
  • 打赏
  • 举报
回复
udp打洞 确实是可以滴,但是涉及到路由器的配置等问题, 所以很多人打洞不成功
  • 打赏
  • 举报
回复
说什么“QQ在内网是udp打洞的”这是一些人幻想出来的,没有真凭实据。 我能看到的证实仅顶多是,QQ使用udp访问服务器,然后通过服务器转发给另一个客户端。 而当QQ在内网中尝试做一些优化,意思是尝试直连另一个客户端(客户端内部也有简单的服务程序),这跟什么udp没有必然的联系,而且也根本不是打洞。
  • 打赏
  • 举报
回复
我可以告诉你:你不应该使用udp。 网上所谓的udp穿透的文章,有95%以上都是某些人抄别人的文章、而自己甚至都没有实际实际用在产品的任何经验就开始写博客了。 qq也不过是在个别功能上使用udp,特别是根本不需要“打洞”的地方才用。例如在登录时,既使用udp、也使用tcp和http,根本不是仅仅用udp。而任何稍微重要的功能,例如传送文件,则根本就是tcp的,绝不是udp的。 使用tcp,那么任何“内网”客户端都可以跟服务器进行双向通讯。因此如果服务器要向客户端发送消息,瞬间即到了。两个客户端可以首先尝试直接通讯,如果不通则可以通过服务器中转,这全都使用tcp就足够了。
Ki1381 2013-12-21
  • 打赏
  • 举报
回复
先确保IP可达
真相重于对错 2013-12-21
  • 打赏
  • 举报
回复
这几个网络在一个大的局域网内部,还是分别在互联网的不同地方,也就是说这几个网络互联是如何一个形式
山空云静 2013-12-21
  • 打赏
  • 举报
回复
还有,udp穿透,不同的客户端在同一个nat后,不同的nat后,多层nat后,这些情况在代码中是否是需要分情况处理,不要给我讲解udp打孔的概念,该查的我都查过了。 有些实际的代码最好! 本人qq:1225119390 给指导一下,或者发个示例代码(邮箱:1225119390@qq.com),有大神帮忙,感激不尽。

110,534

社区成员

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

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

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