C_网络编程(异步传输字符串).pdf

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C_网络编程(异步传输字符串)

C#网络编程(基本概念和操作) -Part.1(2009-04-07 11:41:12) 标签:c 网络编程it 引言 C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有 限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想 要更加深入的内容,可以参考相关书籍。 本文是该系列第一篇,主要讲述了基于套接字 (Socket)进行网络编程的基本概念,其中包 括TCP 协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远 程服务端;第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打 印字符串,将字符串改为大写,然后再将字符串回发到客户端,客户端最后打印传回的字符 串;第三篇是第二篇的一个强化,讲述了第二篇中没有解决的一个问题,并使用了异步传输 的方式来完成和第二篇同样的功能;第四篇则演示了如何在客户端与服务端之间收发文件; 第五篇实现了一个能够在线聊天并进行文件传输的聊天程序,实际上是对前面知识的一个综 合应用。 与本文相关的还有一篇文章是:C#编写简单的聊天程序,但这个聊天程序不及本系列中的 聊天程序功能强大,实现方式也不相同。 网络编程基本概念 1.面向连接的传输协议:TCP 对于TCP 协议我不想说太多东西,这属于大学课程,又涉及计算机科学,而我不是 “学院 派”,对于这部分内容,我觉得作为开发人员,只需要掌握与程序相关的概念就可以了,不 需要做太艰深的研究。 我们首先知道TCP 是面向连接的,它的意思是说两个远程主机 (或者叫进程,因为实际上 远程通信是进程之间的通信,而进程则是运行中的程序),必须首先进行一个握手过程,确 认连接成功,之后才能传输实际的数据。比如说进程A 想将字符串 “Its a fine day today” 发给进程B,它首先要建立连接。在这一过程中,它首先需要知道进程B 的位置 (主机地 址和端口号)。随后发送一个不包含实际数据的请求报文,我们可以将这个报文称之为 “hello”。如果进程B 接收到了这个 “hello”,就向进程A 回复一个 “hello”,进程A 随后 才发送实际的数据 “Itsa finedaytoday”。 关于TCP 第二个需要了解的,就是它是全双工的。意思是说如果两个主机上的进程 (比如 进程A、进程B),一旦建立好连接,那么数据就既可以由A 流向B,也可以由B 流向A。 除此以外,它还是点对点的,意思是说一个TCP 连接总是两者之间的,在发送中,通过一 个连接将数据发给多个接收方是不可能的。TCP 还有一个特性,就是称为可靠的数据传输, 意思是连接建立后,数据的发送一定能够到达,并且是有序的,就是说发的时候你发了ABC, 那么收的一方收到的也一定是ABC,而不会是BCA 或者别的什么。 编程中与TCP 相关的最重要的一个概念就是套接字。我们应该知道网络七层协议,如果我 们将上面的应用程、表示层、会话层笼统地算作一层 (有的教材便是如此划分的),那么我 们编写的网络应用程序就位于应用层,而大家知道TCP 是属于传输层的协议,那么我们在 应用层如何使用传输层的服务呢(消息发送或者文件上传下载)?大家知道在应用程序中我 们用接口来分离实现,在应用层和传输层之间,则是使用套接字来进行分离。它就像是传输 层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数 据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,我们是不 知道也不需要知道的,我们也不会关心它如何传输,这属于网络其它层次的工作。 举个例子,如果你想写封邮件发给远方的朋友,那么你如何写信、将信打包,属于应用层, 信怎么写,怎么打包完全由我们做主;而当我们将信投入邮筒时,邮筒的那个口就是套接字, 在进入套接字之后,就是传输层、网络层等 (邮局、公路交管或者航线等)其它层次的工作 了。我们从来不会去关心信是如何从西安发往北京的,我们只知道写好了投入邮筒就OK 了。 可以用下面这两幅图来表示它: 注意在上面图中,两个主机是对等的,但是按照约定,我们将发起请求的一方称为客户端, 将另一端称为服务端。可以看出两个程序之间的对话是通过套接字这个出入口来完成的,实 际上套接字包含的最重要的也就是两个信息:连接至远程的本地的端口信息(本机地址和端 口号),连接到的远程的端口信息(远程地址和端口号)。注意上面词语的微妙变化,一个是本 地地址,一个是远程地址。 这里又出现了了一个名词端口。一般来说我们的计算机上运行着非常多的应用程序,它们可 能都需要同远程主机打交道,所以远程主机就需要有

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档