七台河| 芷江| 嵊泗| 祁东| 蒙阴| 邵武| 博兴| 南皮| 凯里| 三都| 信宜| 长子| 双流| 蒲县| 新竹县| 博兴| 乌拉特中旗| 九寨沟| 庆云| 佳木斯| 朝天| 南山| 河池| 滦南| 宁县| 济宁| 昂仁| 钦州| 安新| 晋江| 乡城| 金平| 合肥| 广汉| 凤凰| 桂东| 清水| 志丹| 漠河| 友好| 隆安| 湘东| 内江| 进贤| 浑源| 隆回| 惠阳| 镶黄旗| 阿拉善右旗| 奉新| 奎屯| 新竹县| 鄱阳| 长春| 娄烦| 浙江| 神池| 龙川| 泸县| 西峰| 辽宁| 海沧| 晋宁| 南江| 松滋| 辽阳市| 松溪| 赣榆| 静乐| 呈贡| 从江| 六枝| 猇亭| 峨眉山| 宜都| 休宁| 阳曲| 宁陕| 龙江| 隆回| 六盘水| 北京| 威宁| 栖霞| 汉沽| 连云区| 礼县| 婺源| 洋山港| 清河门| 烈山| 浑源| 贵州| 二道江| 奎屯| 霍山| 泾阳| 苗栗| 长岭| 九江县| 河池| 隆回| 北票| 临沭| 临川| 舒兰| 来凤| 珙县| 栖霞| 谢通门| 台儿庄| 德化| 花都| 临沂| 集安| 花溪| 盐都| 伽师| 松桃| 集美| 寻乌| 金乡| 泰安| 泰顺| 乌兰浩特| 东阳| 象州| 余江| 宜川| 马尔康| 法库| 祁东| 紫云| 龙里| 涠洲岛| 田东| 新郑| 政和| 大方| 抚宁| 巨野| 达州| 大方| 通许| 繁昌| 龙岩| 宁县| 叶城| 措勤| 合江| 任县| 孝感| 上饶市| 班玛| 阿鲁科尔沁旗| 满城| 平乡| 南部| 代县| 永寿| 和布克塞尔| 靖州| 平坝| 伊宁县| 什邡| 咸丰| 永新| 咸宁| 平乐| 麻山| 丹凤| 下花园| 陇县| 安义| 广昌| 定陶| 成安| 巴林右旗| 汉阳| 集安| 黔江| 呼玛| 玛多| 白云| 黄龙| 铁岭市| 阜城| 海城| 岐山| 戚墅堰| 托里| 从江| 盐边| 酒泉| 盐城| 兴山| 河口| 闽清| 岷县| 介休| 金昌| 大丰| 米易| 丰南| 秦安| 长顺| 铁力| 蛟河| 湄潭| 辽阳市| 萨迦| 美姑| 南芬| 河津| 石门| 普洱| 南充| 宜州| 五营| 喀喇沁旗| 太仓| 抚松| 井陉矿| 疏附| 岳阳市| 和顺| 磴口| 南川| 泾川| 建宁| 博罗| 三都| 香河| 交口| 肃宁| 盈江| 高县| 海宁| 勐腊| 额敏| 芜湖县| 石狮| 五营| 京山| 泗水| 碌曲| 永定| 包头| 临漳| 韶山| 昂昂溪| 陆良| 介休| 镇坪| 宣汉| 巴南| 科尔沁左翼中旗| 盐池| 天长| 岳池| 庄河| 阜阳| 冷水江| 化州| 真人博彩

C#教程之C#网络编程教程免费下载

标签:甲胺磷 亚洲真人 乾务镇

资料大小: 1.56 MB

所需积分: 0

下载次数:

用户评论: 0条评论,查看

上传日期: 2019-01-21

上 传 者: 陈天宝他上传的所有资料

资料介绍

标签:客户端(32)TCP(221)数据传输(296)

  C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。

  本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括 TCP 协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客户端,客户端最后打印传回的字符串;第三篇是第二篇的一个强化,讲述了第二篇中没有解决的一个问题,并使用了异步传输的方式来完成和第二篇同样的功能;第四篇则演示了如何在客户端与服务端之间收发文件;第五篇实现了一个能够在线聊天并进行文件传输的聊天程序,实际上是对前面知识的一个综合应用。

  与本文相关的还有一篇文章是:C#编写简单的聊天程序,但这个聊天程序不及本系列中的聊天程序功能强大,实现方式也不相同。

  对于 TCP 协议我不想说太多东西,这属于大学课程,又涉及计算机科学,而我不是“学院派”,对于这部分内容,我觉得作为开发人员,只需要掌握与程序相关的概念就可以了,不需要做太艰深的研究。


?

  我们首先知道 TCP 是面向连接的,它的意思是说两个远程主机(或者叫进程,因为实际上远程通信是进程之间的通信,而进程则是运行中的程序),必须首先进行一个握手过程,确认连接成功,之后才能传输实际的数据。比如说进程 A 想将字符串“It‘s a fine day today” 发给进程 B,它首先要建立连接。在这一过程中,它首先需要知道进程 B 的位置(主机地址和端口号)。随后发送一个不包含实际数据的请求报文,我们可以将这个报文称之为 “hello”。如果进程 B 接收到了这个“hello”,就向进程 A 回复一个“hello”,进程 A 随后才发送实际的数据“It’s a fine day today”。

  关于 TCP 第二个需要了解的,就是它是全双工的。意思是说如果两个主机上的进程(比如进程 A、进程 B),一旦建立好连接,那么数据就既可以由 A 流向 B,也可以由 B 流向 A。除此以外,它还是点对点的,意思是说一个 TCP 连接总是两者之间的,在发送中,通过一个连接将数据发给多个接收方是不可能的。TCP 还有一个特性,就是称为可靠的数据传输,意思是连接建立后,数据的发送一定能够到达,并且是有序的,就是说发的时候你发了 ABC,那么收的一方收到的也一定是 ABC,而不会是 BCA 或者别的什么。

  编程中与 TCP 相关的最重要的一个概念就是套接字。我们应该知道网络七层协议,如果我们将上面的应用程、表示层、会话层笼统地算作一层(有的教材便是如此划分的),那么我们编写的网络应用程序就位于应用层,而大家知道 TCP 是属于传输层的协议,那么我们在应用层如何使用传输层的服务呢(消息发送或者文件上传下载)?大家知道在应用程序中我们用接口来分离实现,在应用层和传输层之间,则是使用套接字来进行分离。它就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,我们是不知道也不需要知道的,我们也不会关心它如何传输,这属于网络其它层次的工作。

  举个例子,如果你想写封邮件发给远方的朋友,那么你如何写信、将信打包,属于应用层,信怎么写,怎么打包完全由我们做主;而当我们将信投入邮筒时,邮筒的那个口就是套接字,在进入套接字之后,就是传输层、网络层等(邮局、公路交管或者航线等)其它层次的工作了。我们从来不会去关心信是如何从西安发往北京的,我们只知道写好了投入邮筒就 OK 了。可以用下面这两幅图来表示它:

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料
句容市九华茶场 马于 仲夏乡 澛港镇 一马路街道
衡南县松柏煤矿 双埠 北卜 木寺村 营市街街道
威尼斯人注册 澳门葡京娱乐官网 澳门海立方赌场 ag电子游戏大奖 e乐博注册
澳门真人网站平台 一肖中特 拉斯维加斯网上官网 惑星战记 澳门大发888网址
澳门银河网址 游戏平台有哪些 二分彩 皇冠现金代理 澳门真人网站网址
澳门葡京网上赌场 真人赌场游戏 百家乐官网 尸乐园 澳门网络赌场官网
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐