DOTNET
基础打牢
Jessica巨人
不认真的人比认真的人多太多了,你认真你就赢了,你不认真你就真的输了。
展开
-
2021-08-26数组、ArrayList、List都能够存储一组对象,那么这三者到底有什么样的区别
在C#中数组、ArrayList、List都能够存储一组对象,那么这三者到底有什么样的区别呢?1.数组数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。数组中某个指定的元素是通过索引来访问的。数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。在 C# 中,数组是非常重要的。//声明数组 int[] s=new int[2]; //string用于指定被存储在数组中的元素类型 []指定数组秩(维度)。秩指定数组大小 s转载 2021-08-26 09:22:30 · 205 阅读 · 0 评论 -
2021-01-04Socket套接字同步模式-当前同步服务器每次处理一个客户端请求
服务端 vsusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net;using System.Net.Sockets;namespace echo{ class Program { static void Main(string[] args)原创 2021-01-04 11:01:03 · 98 阅读 · 0 评论 -
C#开发人员应该知道的13件事情
本文讲述了C#开发人员应该了解到的13件事情,希望对C#开发人员有所帮助。1. 开发过程开发过程是错误和缺陷开始的地方。使用工具可以帮助你在发布之后,解决掉一些问题。编码标准遵照编码标准可以编写出更多可维护的代码,特别是在由多个开发人员或团队编写和维护的代码库中。例如FxCop,StyleCop和ReSharper等,就是常用的实施编码标准的工具。开发人员:翻译 2017-02-23 15:44:57 · 267 阅读 · 0 评论 -
冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每原创 2017-03-06 10:07:02 · 239 阅读 · 0 评论 -
C# Socket编程(5)使用TCP Socket
TCP 协议(Transmission Control Protocol,传输控制协议)是TCP/IP体系中面向连接(connection oriented)的传输层(transport layer),TCP协议能够检测和恢复IP层提供的主机到主机的信道中可能发生的报文丢失、重复以及其他错误。由于TCP协议是一种面向连接协议:在使用它进行通信之前,两个应用程序之间首先要建立一个TCP连接。TCP能转载 2017-02-28 17:31:55 · 1076 阅读 · 0 评论 -
C# Socket编程(4)初识Socket和数据流
经过前面基础知识作为背景,现在对Socket编程进行进一步的学习。在 System.Net.Socket 命名空间提供了Socket类,利用该类我们可以直接编写Socket的客户端和服务的的程序。但是直接使用Socket类编写Socket程序会比较麻烦、而且容易出错,所以.NET为我们提供了进一步封装好的TcpListener类、TCPClient类和UdpClient类。同时,当我们希望通过网络转载 2017-02-28 17:30:40 · 918 阅读 · 0 评论 -
C# Socket编程(3)编码和解码
在网络通信中,很多情况下:比如说QQ聊天,通讯双方直接传递的都是字符信息。但是字符信息并不能够直接通过网络传输,这些字符集必须先转换成一个字节序列后才能够在网络中传输,于是这里就产生了编码和解码的概念:将字符序列转换为字节序列的过程称之为:编码将编码的字节序列转换为字符序列的过程称之为:解码例如:对于Unicode字符来说,编码是指将一组Unicode字符转换为一个字节序列转载 2017-02-28 17:29:56 · 415 阅读 · 0 评论 -
C# Socket编程(2)识别网络主机
通过前面的笔记我们可以知道:一个客户端想要发起一次通信,先决条件就是需要知道运行着服务器端程序的主机的IP地址是多少,端口号是多少。然后我们才能够通过这个地址向服务器特定的应用程序发送信息。对于网络上的两台计算机来说,用户操作的计算机称为本地主机,与该计算机通信的另一台计算机称为远程主机。识别远程主机依靠两部分组成:一是主机标识,用于识别与本地主机通信的远程主机;二是端口号,用于识别是再和远程主机转载 2017-02-28 17:27:16 · 399 阅读 · 0 评论 -
C# Socket编程(1)基本的术语和概念
计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础。那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因。C#语言从一开始就是为了互联网而设计的,它为实现程序的相互通信提供了许多有用API,这类应用编程接口被称为套接字(Socket)。在开始学习C# Socket之前我们需要先来了解一下基本的术语和概念。阅读目录: 1.计算机网络转载 2017-02-28 17:26:20 · 241 阅读 · 0 评论 -
两个for循环嵌套,二维数组
将脚本erweishuzu挂在Main Camera上using UnityEngine;using System.Collections;using UnityEngine.UI;public class erweishuzu : MonoBehaviour { void Start () { int temp = 0; for (int原创 2017-02-21 09:44:46 · 2631 阅读 · 0 评论 -
unity的声明周期
物理更新一般在FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。移动相机动作在LateUpdate,在每帧执行完毕调用,他是在所有update结束后才掉,比较适合用于转载 2017-03-01 09:20:37 · 573 阅读 · 0 评论 -
基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现
IOCP:Input/Output Control Program 输入/输出控制程序设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能、伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性、可用性和灵活性必须考虑在内。 现以一个基于 IOCP 的通用异步 Windows So转载 2017-02-28 17:17:46 · 561 阅读 · 0 评论 -
1.面向过程语言和面向对象语言的差别
面向过程就是什么事都自己做(自己造电脑),面向对象就是什么事都指挥对象去做(自己组装电脑)。面向过程,自己造电脑。面向对象,自己组装电脑。面向过程就是你把代码封装成函数(procedure),然后依次去做一件事情;面向对象就是你把要做的事情抽象成对象,告诉对象去做。面向对象三大特性(封装,继承,多态)使得在做复杂的事情的时候效率和正确率得到保证。反对,不会显z面向过程,自己造电脑。面向转载 2016-12-19 14:21:24 · 4184 阅读 · 0 评论 -
2.类和对象
class类是抽象的类型,对象是具体的实例haiping h = new haiping();类型 变量名 使用new关键字初始化类是一种抽象的概念。类的作用就是为了进行分类,就好像去超市买东西有分区一样。进行功能的分类。类:抽象物体的特征和行为。如何定义一个类,如何用类创建一个对象?public class Haiping{原创 2016-12-19 15:25:50 · 180 阅读 · 0 评论 -
深入理解堆、栈在内存中的实现
尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(GarbageCollection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈和堆的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。在.NET framework环境下,当我们的翻译 2017-02-28 16:28:09 · 822 阅读 · 0 评论 -
深入探析c# Socket
最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。 (一)架构 基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket翻译 2017-02-28 16:32:54 · 424 阅读 · 0 评论 -
c# Socket服务器整体架构概述
Socket服务器主要用于提供高效、稳定的数据处理、消息转发等服务,它直接决定了前台应用程序的性能。我们先从整体上认识一下Socket服务器,Socket服务器从架构上一般分为:网络层、业务逻辑层、会话层、数据访问层,如图: (图1)(一) 网络层网络层主要用于侦听socket连接、创建socket、接受消息、发送消息、翻译 2017-02-28 16:36:31 · 936 阅读 · 0 评论 -
高性能socket设计实现
因为学习的需要,要求一个高性能的Socket服务器来提供多而繁杂的客户端连接请求,参考了许多资料和各位的思想,自己琢磨出了一套方案,觉的可行,于是拿出来晒晒,希望大家一起学习改进。(这个方案的1.0版本已经贴出来了,但是由于本人觉的1.0不太完美,做了下改进,本篇讲的主要是2.0)1.0的文章参考:http://www.cnblogs.com/niuchenglei/archive/200翻译 2017-02-28 16:38:39 · 938 阅读 · 0 评论 -
线程池和异步线程
线程池和异步线程目录:1 什么是CLR线程池?2 简单介绍下线程池各个优点的实现细节3 线程池ThreadPool的常用方法介绍4 简单理解下异步线程5 异步线程的工作过程和几个重要的元素6 有必要简单介绍下Classic Async Pattern 和Event-based Async Pattern7 异步线程的发展趋势以及.net4.5异步的简化8 本章示例 自定义一翻译 2017-02-28 17:09:14 · 2033 阅读 · 1 评论 -
Socket阻塞与非阻塞的区别
简单点说:阻塞就是干不完不准回来, 非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你C翻译 2017-02-28 17:12:29 · 601 阅读 · 0 评论 -
C#中的抽象类和接口
定义一个类时,通常需要定义一些方法来描述这个类的行为特征,但比如定义动物类时,叫shou()方法针对每个动物不同叫声也不同,因此shou()方法无法准确的描述动物的叫声。当这种情况出现时,C#允许在定义方法时不写方法体,即抽象方法(用abstract关键字定义)定义抽象类抽象方法的类必为抽象类,但抽象类可以没有抽象方法。抽象类不可以实例化,如想调用抽象类中定义的方法,则需创建子类,原创 2016-12-08 14:50:42 · 742 阅读 · 0 评论