使用C# SocketTCP开发网络游戏ForestWars(一) 网络基础

版权声明:未经同意,请勿转载 https://blog.csdn.net/qq_25542475/article/details/86773889
本章讲述一些网络开发中的基本知识。

(一)什么是IP

网络上的计算机都是通过IP地址进行识别的,应用程序通过通信端口进行彼此通信,在命令提示符中输入ipconfig,便能查看到本机的ip地址。
在这里插入图片描述

(二)什么是端口号

端口是设备与外界通信交流的出口,每台分配0到65535共65536个端口号,其中0到1023号端口号被分配给一些固定的服务。

(三)C#中的相关类型

C#中的System.Net命名空间下提供了IPAddress和IPEndPoint。IPAddress指示IP地址IPEndPoint指示IP和端口的组合,它们的常用属性,构造函数如下图:
在这里插入图片描述

(四)TCP协议

(1)什么是TCP协议

TCP协议是一种面向连接的可靠的基于字节流的传输层通信协议,相对的,UDP协议是无连接不可靠的,但传输效率高的协议。

(2)TCP连接的建立

TCP连接的建立是通过三次握手的过程建立的,三次握手的目的是为了确认双方的序列号和确认号,并交换TCP窗口的信息。
在这里插入图片描述
可以通俗的解释为:A,B和C三军对峙,A和B是友军
1)A军派出通讯员联络B军,传达今晚发起进攻的消息。但是,通讯员不一定能完成任务,所以A只能等B军的回复。
2)B军收到消息后,做出收到的回应,但是B军也不知道A军是否收到B军的消息,所以B需要等A的回应。
3)A军收到消息后,回应B军收到消息,交流结束。

(3)TCP数据的传输

发送数据后,发送方需要接收到接收方的确认,否则会重新发送消息。

(4)TCP连接的终止

TCP连接的终止是通过四次挥手的过程实现的的。
在这里插入图片描述
可以通俗的解释为:A是主管,B是职员
1)第一次挥手:A说做完这个任务我们就可以下班了,A进入等待状态。
2)第二次挥手:B回应收到命令。
3)第三次挥手:B待任务完成后,回应完成任务,请求下班。
4)第四次挥手:A告诉BOK,下班走人。

(五)Socket套接字

(1)什么是Socket套接字

套接字是支持TCP/IP协议的网络通信的基本操作单元,可以看作不同主机间的进程双向通信的端点,它构成了单个主机及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。各种进程使用这个相同的域用Internet协议进行相互之间的通信。

(2)Socket通信流程

在这里插入图片描述
1)开启一个连接前,首先要创建一个套接字(Socket)以及绑定IP和端口号(Bind)。
2)服务端开启监听客户端的接入(Listen)。
3)客户端连接服务器(Connect),服务器接收(Accept)连接,进行三次握手。
4)客户端与服务器进行数据传输(Write)(Read)。
5)服务器和客户端关闭连接,进行四次挥手(Close)。

(3)C#中的相关类型

System.Net.Sockets命名空间的Socket类为网络通信提供了一套丰富的方法和属性。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_25542475/article/details/86773889
今日推荐