c#socket网络编程

GPU小码农 2013-09-20 03:43:55
请问下如何实现两台计算机的互联? 不是局域网,就像QQ那样的广域网连接。求实例!!!!
...全文
290 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Code従業員 2013-09-21
  • 打赏
  • 举报
回复
p2p

nat 穿透

一些例子能满足你的要求
GPU小码农 2013-09-21
  • 打赏
  • 举报
回复
引用 9 楼 icdbow 的回复:
p2p nat 穿透 一些例子能满足你的要求
求例子资源链接。。。
threenewbee 2013-09-20
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
是。因为我是做企业软件的(而现在不做互联网),因此我主要是从企业软件所需要的观念来描述。 我不是提出一个简单的demo程序作为“实例”,我只是说明一种目标定位。 我想说的是,也许提问题的人自己也没有意识到,从局域网两两之间的通讯,到QQ那类通讯,其实是c/s编程的改变。比图说我们要给最低1000人在线规模的一个企业做一个(两百种)工单流转系统,那么这其实就是一个企业即时通讯系统,使用者平常不可能整天盯着这个软件界面,而仅仅当工作来了的时候才像QQ弹出消息提示一样地去提醒用户有新的任务到来。而且任务处理肯定不是这个即时通讯系统该做的事情,这个即时通讯系统只是用来把企业的各种前端业务处理系统给管理起来、驱动起来的。 这样一个简单的企业即时通讯系统,它至少有近百台路由器,有一百公里的光纤网络,有七八个分布在城市不同位置的计算中心,有相隔几十公里的几十家分公司企业,有几百人的抢修和巡逻人员,这是你在考虑说“就像QQ那样的广域网连接”时所心里应该想到的一个设计目标。 我们的企业管理软件,以这个为目标。 不要仅仅想到网站,甚至仅仅是网页。我身边有人总是以为“做一堆各种业务的asp.net网站就可以了”,这样的人没有做出几个让企业真正上手并且感觉到好用的产品。真正好用的企业产品几乎可以肯定不是简单的网页可以解决问题的,桌面、手机、网页等各种平台能够双向及时通讯,这是基本。
是的,最近有几个贴,上来张口就是“我要一个淘宝或者新浪那样的源代码”。很让人无语。
GPU小码农 2013-09-20
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
两台计算机根本没有互联,它们连的是企业服务器。
那请问下,如何搭建起一个简单的服务器呢?比如说拿我的电脑做服务器,一个服务器最多能容纳下多少客户是如何衡量的呢?CPU的运算能力吗?还有请问下,假设用我的电脑做服务器,是用的网络IP吗?需要登录到猫的设置,做端口映射吗?
  • 打赏
  • 举报
回复
是。因为我是做企业软件的(而现在不做互联网),因此我主要是从企业软件所需要的观念来描述。 我不是提出一个简单的demo程序作为“实例”,我只是说明一种目标定位。 我想说的是,也许提问题的人自己也没有意识到,从局域网两两之间的通讯,到QQ那类通讯,其实是c/s编程的改变。比图说我们要给最低1000人在线规模的一个企业做一个(两百种)工单流转系统,那么这其实就是一个企业即时通讯系统,使用者平常不可能整天盯着这个软件界面,而仅仅当工作来了的时候才像QQ弹出消息提示一样地去提醒用户有新的任务到来。而且任务处理肯定不是这个即时通讯系统该做的事情,这个即时通讯系统只是用来把企业的各种前端业务处理系统给管理起来、驱动起来的。 这样一个简单的企业即时通讯系统,它至少有近百台路由器,有一百公里的光纤网络,有七八个分布在城市不同位置的计算中心,有相隔几十公里的几十家分公司企业,有几百人的抢修和巡逻人员,这是你在考虑说“就像QQ那样的广域网连接”时所心里应该想到的一个设计目标。 我们的企业管理软件,以这个为目标。 不要仅仅想到网站,甚至仅仅是网页。我身边有人总是以为“做一堆各种业务的asp.net网站就可以了”,这样的人没有做出几个让企业真正上手并且感觉到好用的产品。真正好用的企业产品几乎可以肯定不是简单的网页可以解决问题的,桌面、手机、网页等各种平台能够双向及时通讯,这是基本。
threenewbee 2013-09-20
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
局域网和广域网没有任何区别。唯一的区别就是局域网不存在通讯的某一端没有公网ip,无法直接接收数据的问题。
这个我解释下。我完全赞同sp1234的观点,我的观点和他的不矛盾。虽然实现一个qq那样的聊天系统是一个浩大的功能。但是如果仅仅是让两台相距万里,并且都连接互联网的电脑通过socket像在局域网中那样通讯,并不是很难的事情,甚至可以说,和局域网没什么区别。 如果两台电脑都有公网ip(或者能够通过端口映射在公网暴露),那么最简单,除了ip,别的不用改,你的局域网程序就能用 如果两台电脑有一台有公网ip,那么必须内网的那台机器先发起连接请求。 如果两台电脑都在内网,通过nat访问互联网,那么最麻烦,你需要一个作为中转的,有公网ip的服务器,两方首先和服务器建立连接,并且得知对方的ip/端口,然后通过俗称nat打洞的技术直接连接。或者通过服务器中转数据。
  • 打赏
  • 举报
回复
QQ的服务器开发项目组,面对的是一个巨大的“社会”,因此它面临的是想办法研究在十万服务器上如何运营几百个社会化子项目的问题。它甚至可以提供开放api来支持各种各样的客户端,以便推行QQ号取代电话号码的地位。 而飞鸽的项目组,面对的就是一个办公室里的几个好友如何简单通讯,多说在增加个考勤“管理”(小OA动不动就把什么功能都叫做“管理”)功能,这样的问题。再大了奢望也做不起来。 所以你要了解基本的即时通讯概念,不能不了解这不同机制的背景和能力的差别。
  • 打赏
  • 举报
回复
QQ与飞鸽的机制是不同的。 飞鸽在登录和退出时,在当前局域网网段广播一下,然后获得同一个网段其它好友的“在线”消息。之后它就使用好友的ip地址与之通讯。因此飞鸽没有服务器,只有一个非常简单的客户端。 而QQ是广域网的,甚至“广”到10亿人、全地球人都能通讯,因此就不能动不动“广播一下”,因此需要服务器机制。因此其客户端非常简单,但是服务器非常复杂。比如说QQ客户端可以用5个人来开发1个人维护,而服务器端这需要200人开发、2000人维护。
threenewbee 2013-09-20
  • 打赏
  • 举报
回复
局域网和广域网没有任何区别。唯一的区别就是局域网不存在通讯的某一端没有公网ip,无法直接接收数据的问题。
  • 打赏
  • 举报
回复
两台计算机根本没有互联,它们连的是企业服务器。

111,098

社区成员

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

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

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