Crazy Learning for Day 17

来源:互联网 发布:表妹 网络词 什么意思 编辑:程序博客网 时间:2024/05/05 03:24

1、路由器

路由:一个Client想去访问其他不在同网络的计算机,需要配置个默认网关,这是干啥的呢?就是把数据包都丢给路由器,路由器拆包,看到里面的IP,然后如果它知道IP对应哪个机器,就把数据包转发给对应的机器。路由器的作用,无非就是数据包的转发,进而完成两个不在同一网络上的两台主机的通信。

简单地说,路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点.由此可见,选择最佳路径策略或叫选择最佳路由算法是路由器的关键所在.为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用.上述过程描述了路由器的主要而且关键的工作过程,但没有说明其它附加性能,例如访问控制、网络地址转换、排队优先级等。

由于网络运营商限制的情况下,一根网线只能连接一台电脑,用路由器可以把这一根网线来分别连接一台以上的电脑来共享上网。 无线路由器就是在有线路由器的基础上增加了无线连接部分,家里的笔记本电脑就可以通过无线连接达到有一定范围限制的“无线上网”,最终还是要通过有线的网络来传输信号。

2、简单理解Socket

我们知道两个进程如果需要进行通讯最基本的一个前提能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程DPID冲突几率很大,这时候我们需要另辟它径了。我们知道IP层的IP地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用IP地址+协议+端口号唯一标示网络中的一个进程。

能够唯一标示网络中的进程后,它们就可以利用Socket进行通信了。

Socket:网络上的两个程序通过一个双向通信连接实现数据的交换,这个连接的一端称为一个socket。

Socket:是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

Socket通信流程

socket“打开-读写-关闭”模式的实现,以使用TCP协议通讯的socket为例,其交互流程大概是这样子的。

这里写图片描述

服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket服务器为socket绑定ip地址和端口号服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开客户端创建socket客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求客户端连接成功,向服务器发送连接状态信息服务器accept方法返回,连接成功客户端向socket写入信息服务器读取信息客户端关闭服务器端关闭

3、C# 网络编程基本字段——IPAddress、IPEndPoint

命名空间:using system.Net;

IPAddress 类提供了对IP地址的转换、处理等功能。其Parse方法可将IP地址字符串转换为IPAddress实例

如:IPAddress ip = IPAddress.Parse("127.0.0.1");

IPEndPoint 类包含应用程序连接到主机上的服务所需的主机和端口信息,通过组合服务的主机IP地址和端口号,IPEndPoint类形成到服务的连接点。

4、try catch finally语句——异常捕获机制

一、C#的异常处理所用到关键字  try 用于检查发生的异常,并帮助发送任何可能的异常。  catch 以控制权更大的方式处理错误,可以有多个catch子句。  finally 无论是否引发了异常,finally的代码块都将被执行。  throw 用于引发异常,可引发预定义异常和自定义异常。  二、C#异常处理的格式  try  {  程序代码块;  }  catchException e)  {  异常处理代码块;  }  finally  {  无论是否发生异常,均要执行的代码块;  }  

5、数据库

数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库。

6、虚方法——可以被子类重写的方法,如果重写了虚方法,那么运行时将使用重写后的逻辑,如果没有重写,则使用父类中虚方法的逻辑。

7、计算机网络中的Tick——每个始终嘀嗒(tick)

Serialize——序列化
Deserialize——反序列化

序列化(Serialization):将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

序列化的实现
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable
只是为了标注该对象是可被序列化的。然后使用一个输出流(如:FileOutputStream)来构造一个
ObjectOutputStream(对象流)对象。接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

8、Mathf.Clamp限制

static function Clamp (value:float, min : float, max : float): float

限制value 的值在min 和 max 之间,如果value小于min,返回min。如果value大于max,返回max,否则返回value。

原创粉丝点击