C#
C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力
有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果
想要更加深入的内容,可以参考相关书籍。
本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其
中包括 TCP 协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接
远程服务端;第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并
打印字符串,将字符串改为大写,然后再将字符串回发到客户端,客户端最后打印传回的字
符串;第三篇是第二篇的一个强化,讲述了第二篇中没有解决的一个问题,并使用了异步传
输的方式来完成和第二篇同样的功能;第四篇则演示了如何在客户端与服务端之间收发文件;
第五篇实现了一个能够在线聊天并进行文件传输的聊天程序,实际上是对前面知识的一个综
合应用。
与本文相关的还有一篇文章是:
C#
,但这个聊天程序不及本系列
中的聊天程序功能强大,实现方式也不相同。
Part.1
对于 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。
评论0
最新资源