.NET Framework概述,第1张

  NET Framework是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件 NET Framework 旨在实现下列目标

 ◆提供一个一致的面向对象的编程环境 而无论对象代码是在本地存储和执行 还是在本地执行但在 Internet 上分布 或者是在远程执行的

 ◆提供一个将软件部署和版本控制冲突最小化的代码执行环境

 ◆提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境

 ◆提供一个可消除脚本环境或解释环境的性能问题的代码执行环境

 ◆使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致

 ◆按照工业标准生成所有通信 以确保基于 NET Framework 的代码可与任何其他代码集成

  NET Framework 具有两个主要组件 公共语言运行库和 NET Framework 类库 公共语言运行库是 NET Framework 的基础 您可以将运行库看作一个在执行时管理代码的代理 它提供内存管理 线程管理和远程处理等核心服务 并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性 事实上 代码管理的概念是运行库的基本原则 以运行库为目标的代码称为托管代码 而不以运行库为目标的代码称为非托管代码 NET Framework 的另一个主要组件是类库 它是一个综合性的面向对象的可重用类型集合 您可以使用它开发多种应用程序 这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序 也包括基于 ASP NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)

  NET Framework 可由非托管组件承载 这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行 从而创建一个可以同时利用托管和非托管功能的软件环境 NET Framework 不但提供若干个运行库宿主 而且还支持第三方运行库宿主的开发

 例如 ASP NET 承载运行库以为托管代码提供可伸缩的服务器端环境 ASP NET 直接使用运行库以启用 ASP NET 应用程序和 XML Web services(本主题稍后将对这两者进行讨论)

 Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例 使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件 以这种方式承载运行库使得托管移动代码(类似于 Microsoft® ActiveX® 控件)成为可能 不过它需要只有托管代码才能提供的重大改进(如不完全受信任的执行和独立的文件存储)

 下面的插图显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系 该插图还显示托管代码如何在更大的结构内运行

  NET Framework 环境

 下面的章节将更加详细地描述 NET Framework 的主要组件和功能

  公共语言运行库的功能

 公共语言运行库管理内存 线程执行 代码执行 代码安全验证 编译以及其他系统服务 这些功能是在公共语言运行库上运行的托管代码所固有的

 至于安全性 取决于包括托管组件的来源(如 Internet 企业网络或本地计算机)在内的一些因素 托管组件被赋予不同程度的信任 这意味着即使用在同一活动应用程序中 托管组件既可能能够执行文件访问操作 注册表访问操作或其他须小心使用的功能 也可能不能够执行这些功能

 运行库强制实施代码访问安全 例如 用户可以相信嵌入在 Web 页中的可执行文件能够在屏幕上播放动画或唱歌 但不能访问他们的个人数据 文件系统或网络 这样 运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能

 运行库还通过实现称为通用类型系统 (CTS) 的严格类型验证和代码验证基础结构来加强代码可靠性 CTS 确保所有托管代码都是可以自我描述的 各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码 这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例

 

 此外 运行库的托管环境还消除了许多常见的软件问题 例如 运行库自动处理对象布局并管理对对象的引用 在不再使用它们时将它们释放 这种自动内存管理解决了两个最常见的应用程序错误 内存泄漏和无效内存引用

 运行库还提高了开发人员的工作效率 例如 程序员可以用他们选择的开发语言编写应用程序 却仍能充分利用其他开发人员用其他语言编写的运行库 类库和组件 任何选择以运行库为目标的编译器供应商都可以这样做 以 NET Framework 为目标的语言编译器使得用该语言编写的现有代码可以使用 NET Framework 的功能 这大大减轻了现有应用程序的迁移过程的工作负担

 尽管运行库是为未来的软件设计的 但是它也支持现在和以前的软件 托管和非托管代码之间的互操作性使开发人员能够继续使用所需的 组件和 DLL

 运行库旨在增强性能 尽管公共语言运行库提供许多标准运行库服务 但是它从不解释托管代码 一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行 同时 内存管理器排除了出现零碎内存的可能性 并增大了内存引用区域以进一步提高性能

 最后 运行库可由高性能的服务器端应用程序(如 Microsoft® SQL Server&# ; 和 Internet 信息服务 (IIS))承载 此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时 能够使用托管代码编写业务逻辑

  NET Framework 类库

  NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合 该类库是面向对象的 并提供您自己的托管代码可从中导出功能的类型 这不但使 NET Framework 类型易于使用 而且还减少了学习 NET Framework 的新功能所需要的时间 此外 第三方组件可与 NET Framework 中的类无缝集成

 例如 NET Framework 集合类实现一组可用于开发您自己的集合类的接口 您的集合类将与 NET Framework 中的类无缝地混合

 正如您对面向对象的类库所希望的那样 NET Framework 类型使您能够完成一系列常见编程任务(包括诸如字符串管理 数据收集 数据库连接以及文件访问等任务) 除这些常见任务之外 类库还包括支持多种专用开发方案的类型 例如 可使用 NET Framework 开发下列类型的应用程序和服务

 控制台应用程序

 ◆Windows GUI 应用程序(Windows 窗体)

 ◆ASP NET 应用程序

 ◆XML Web services

 ◆Windows 服务

 例如 Windows 窗体类是一组综合性的可重用的类型 它们大大简化了 Windows GUI 的开发 如果要编写 ASP NET Web 窗体应用程序 可使用 Web 窗体类

  客户端应用程序开发

 客户端应用程序在基于 Windows 的编程中最接近于传统风格的应用程序 这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型 客户端应用程序包括诸如字处理程序和电子表格等应用程序 还包括自定义的业务应用程序(如数据输入工具 报告工具等等) 客户端应用程序通常使用窗口 菜单 按钮和其他 GUI 元素 并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)

 另一种客户端应用程序是作为 Web 页通过 Internet 部署的传统 ActiveX 控件(现在被托管 Windows 窗体控件所替代) 此应用程序非常类似于其他客户端应用程序 它在本机执行 可以访问本地资源 并包含图形元素

 过去 开发人员将 C/C++ 与 Microsoft 基础类 (MFC) 或应用程序快速开发 (RAD) 环境(如 Microsoft® Visual Basic®)一起使用来创建这样的应用程序 NET Framework 将这些现有产品的特点合并到了单个且一致的开发环境中 该环境大大简化了客户端应用程序的开发

 包含在 NET Framework 中的 Windows 窗体类旨在用于 GUI 开发 您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口 按钮 菜单 工具栏和其他屏幕元素

 例如 NET Framework 提供简单的属性以调整与窗体相关联的可视属性 某些情况下 基础操作系统不支持直接更改这些属性 而在这些情况下 NET Framework 将自动重新创建窗体 这是 NET Framework 集成开发人员接口从而使编码更简单更一致的许多方法之一

 和 ActiveX 控件不同 Windows 窗体控件具有对用户计算机的不完全受信任的访问权限 这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源 例如 GUI 元素和访问受限制的文件 但这些代码不能访问或危害其他资源 由于具有代码访问安全性 许多曾经需要安装在用户系统上的应用程序现在可以通过 Web 部署 您的应用程序可以在像 Web 页那样部署时实现本地应用程序的功能

  服务器应用程序开发

 在托管领域中 服务器端应用程序是通过运行库宿主实现的 非托管应用程序承载公共语言运行库 后者使您的自定义托管代码可以控制服务器的行为 此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能

 

 下面的插图显示在不同服务器环境中运行托管代码的基本网络架构 在应用程序逻辑通过托管代码执行时 服务器(如 IIS 和 SQL Server)可执行标准操作

  服务器端托管代码

1、使用socekt通信一般步骤

1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。

2)客户端:socker()建立套接字,连接(connect)服务器,连接上后使用send()和recv(),在套接字上写读数据,直至数据交换完毕,closesocket()关闭套接字。

3)服务器端:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。该新产生的套接字使用send()和recv()写读数据,直至数据交换完毕,closesocket()关闭套接字。

2、多个客户端同时连接在一个服务器上

这时候服务器端应该使用多线程,每连接上一个客户端就给该客户端开启一个线程。监听端口的时候也要单独开一个线程、不然会阻塞主线程。这样做有一个明显的缺点,就是有N个客户端请求连接时,就会有N个线程,对程序的性能和计算机的性能影响很大,可以使用线程池进行管理。

使用线程池的好处:主要用于减少因频繁创建和销毁线程带来开销,因此那些经常使用且执行时间短的线程需要用线程池来管理。

3、C#版代码如下

服务器端代码:

[html] view plain copy

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemNet;

using SystemNetSockets;

using SystemThreading;

using SystemIO;

namespace SockServer

{

class Program

{

static void Main(string[] args)

{

try

{

//把ip地址转换为实例

IPAddress ipa = IPAddressParse("127001");

//监听端口8001

TcpListener mylsn = new TcpListener(ipa, 8001);

//开启监听

mylsnStart();

//输出监听成功的信息

ConsoleWriteLine("在8001启动服务,等待连接");

//等待处理接入连接请求

while (true)

{

Socket mysock = mylsnAcceptSocket();

ConsoleWriteLine("有连接,连接来自" + mysockRemoteEndPoint);

work w = new work();

wmysock = mysock;

wmylsn = mylsn;

Thread t = new Thread(new ThreadStart(wmain));

tStart();

}

}

catch

{ }

finally

{ }

}

}

class work

{

public Socket mysock;

public TcpListener mylsn;

public void main()

{

//接收客户端消息

byte[] data = new byte[100];

mysockReceive(data);

string rt = SystemTextUTF8EncodingUTF8GetString(data);

ConsoleWriteLine(rt);

//给客户端发消息

mysockSend(UTF8EncodingUTF8GetBytes("server callback"));

//释放资源

mysockClose();

mylsnStop();

}

}

}

客户端代码:

[html] view plain copy

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemNet;

using SystemNetSockets;

using SystemThreading;

using SystemIO;

namespace SockClient

{

class Program

{

public static void Main()

{

//新建客户端套接字

TcpClient tclient = new TcpClient();

//连接服务器

tclientConnect("127001", 8001);

ConsoleWriteLine("输入要发送的消息");

//读入要传输的字符

string str = ConsoleReadLine();

//得到流

Stream stm = tclientGetStream();

//发送字符串

ASCIIEncoding asen = new ASCIIEncoding();

byte[] data = asenGetBytes(str);

stmWrite(data, 0, dataLength);

//接受服务器返回的消息

byte[] back = new byte[100];

int k = stmRead(back, 0, 100);

//输出服务器返回的消息

for (int i = 0; i < k; i++)

{

ConsoleWrite(ConvertToChar(back[i]));

}

//关闭连接

tclientClose();

}

}

}

客户端验证是在客户端进行的,不会上传到服务器,不占用服务器资源,速度快,但如果用户不开户JAvascript等功能则会使验证失败,或者用户恶意绕开验证,上传非法数据则可能会使程序出错。

服务器端验证是将数据发回到服务器,通过后台进行验证,这显然会增加服务器的开销,占用服务器资源,但这种验证稳妥可靠。

客户端验证具有优先权,因为它在本地就验证了。

对于要求高的系统可以同时采用两种验证方式。

非常简单,NET 就是 Microsoft® 的 XML Web 服务平台。不论操作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。

Microsoft® NET 平台包含广泛的产品系列,它们都是基于 XML 和 Internet 行业标准构建,提供从开发、管理、使用到体验 XML Web 服务的每一方面。XML Web 服务将成为您今天正在使用的 Microsoft® 的应用程序、工具和服务器的一部分 — 并且将要打造出全新的产品以满足您所有业务需求。

更具体地说,Microsoft 正在五个方面创建 NET 平台,即工具、服务器、XML Web 服务、客户端和 NET 体验。

商业需求

XML Web services是分布式计算的重要标准,也是未来软件开发的技术趋势,通过XML Web services标准,应用软件之间可以实现跨平台,跨编程语言的联接和互操作。作为微软平台的一个基本功能,基于XML Web services标准的NET 开发平台可以实现个人之间,个人与企业之间,和企业之间的信息互连,这样就实现人们可以随时随地存取和使用信息的梦想。

在微软构造和实现这种NET- connected平台的同时,众多的合作伙伴和厂商也在开发基于XML Web services标准的可以互相联接和整合软件产品和解决方案。这些软件产品和解决方案正在给他们的客户带来巨大的好处:企业的信息系统可以更方便地为其用户提供更好的服务,企业的信息系统可以与合作伙伴的系统更好地相连,可以为企业的雇员提供及时正确的信息。

产业商机

微软公司的NET Connected Logo计划,是一个全球认证计划,主要是用来标识那些基于XML Web services而开发的软件和解决方案。经微软认证的软件公司,可以将NET Connected 标志图案置于其被认证软件产品的包装,文档,宣传材料和广告中。

NET Connected标识,标志着您的应用软件基于NET Framework开发,能够基于XML Web services标准和其他的软件共享数据和功能。NET Connected Logo计划可以帮助客户识别应用软件、系统和服务是否为了适应下一代Internet计算的要求而进行了优化。

参加Microsoft NET Connected Logo计划的好处

Microsoft NET Connected Logo会:

标识领先的软件开发技术和实力。

区别您的应用软件于其他的软件产品。

充分利用微软在NET上所做的广泛的市场宣传和投入。

通过NET Connected 目录在全球推广和宣传您的软件产品和解决方案。

使用NET Connected产品和服务的用户会受益:

经认证的软件产品和服务,可以基于XML Web services与其他的软件互联,并被无缝地整合进企业未来的信息系统中。

经认证的产品,基于NET Framework开发,有良好的性能,稳定性和安全性,意味着这个产品或服务可以信赖。

可以帮助最终用户迅速地识别那些能够帮助他们随时随地信息互连的技术。

Microsoft NET Connected 白金应用要求:

应用软件或服务应基于Microsoft NET Framework 开发,主要的应用功能提供有基于XML Web service 的接口, 这个Web service调用的过程要符合业界标准:XML Schema 10, SOAP 11XML Schema 10, SOAP 11以及WSDL 11 。应用应该用到至少一种微软的应用服务器,如SQL Server, Exchange Server, Biztalk Server等。

The NET Connected Directory

微软NET Connected Directory 提供了一个中心的位置,用户可以在这里查找信息,合作伙伴可以在这个位置展示满足NET Connected logo要求的软件和服务。即使微软推广这些应用软件和XML Web services时,合作伙伴仍然可以继续维护与宿主这些服务或应用软件,维护任何支付方式,处理所有与这些产品相关的问题。

通常,如果你的产品得到了NET Connected 资质认证,他就会自动的在目录产品列表中显示出来。一个合作伙伴可以选择是否要在NET Connected Directory中显示自己的产品。

合作伙伴的信息在加入目录之前要经过评审得到允许才可加入。

合作者详细网址(需要URL)

为了能够使合作者对它们提交的东西做出改动时(支付结构,下载网址,描述等)不用重新提交入口,我们需要连接到合作者的网址,这个网址包括后面列出的一些信息。这些信息不仅会帮助开发者得到计划的版本,下载信息等,它也包含应用软件自身的基本商业信息。合作者的网页包含的信息为:

使用XML Web service的XML Web 服务或应用软件的名字

描述产品的功能

执行它的步骤

连接到XML Schema的网址,浏览XML Schema(可选)

WSDL Schema Version (ie: v11)

SOAP Version (ie: v11)

XML Web service 或软件花费和支付方法

系统要求(可选)

和哪些产品一起工作效果好或要求(可选)

建立联系得到用户支持

建立连接下载软件(可选)

直接回到NET Connected directory的链接http://wwwmicrosoftcom/net/directory

产品有效期(如果有的话)

可选信息--常见问题回答,其他信息,联系电话

网页必须显示适当的NET Connected Logo

合作者的信息在加入目录之前要经过评审得到允许才可加入

未来的需求

将来NET Connected Logo计划会产生更高级的标准。

这个文档只是作为参考,MICROSOFT并没有授权,或隐含什么。

使用 NET

就其核心问题而言,Microsoft® NET是关于使技术为人们所用,而不是强制个人适应其计算机的限制。利用 NET,无论何时何地您总能连接到您首选设备上的信息。利用 NET,您可以保护您的个人信息和企业数据,同时允许有您的授权的他人连接到这些信息。

NET 的价值

对于个人(包括您自己、您的客户、雇员、供应商和合作伙伴)来说,使用 Microsoft NET 进行生成的成果将是无缝的、吸引人的体验。

使用 NET 进行开发

借助 Microsoft Visual Studio® NET 和 Microsoft NET 框架,Microsoft® NET 提供了生成和部署最先进的应用程序和 XML Web services 的最快捷方法。

NET 对开发人员意味着什么

通过使用 Microsoft Visual Studio® NET 和 NET 框架,Microsoft 为开发人员提供了一整套开发工具,使用这些工具可以快速而轻松地创建最先进的应用程序和 XML Web services。

借助 Visual Studio NET 和 NET 框架,Microsoft NET 允许更快地开发软件应用程序和服务。

NET 框架和 Visual Studio NET 将为应用程序和 XML Web services 提供更高的可靠性。

XML Web services 的使用将允许在 NET 平台上创建的应用程序和服务更容易、更有效地集成在一起。

XML Web services

对于 Microsoft NET,在处理一组有限任务的离散单元(XML Web services)中生成代码。由于基于 XML 的标准接口简化了软件之间的通讯,因此可以将 XML Web services 一起集成到高度专门化的应用程序和体验。您可以使用来自世界各地的最好的 XML Web services,快速而轻松地创建所需的解决方案。Microsoft 将提供一组以用户为中心的核心 XML Web services(即 Microsoft NET 我的服务)以提供诸如用户标识和日历访问之类的功能。

更快的开发

通过使用公共语言运行库(NET 框架的一部分),开发人员可以使用任何现代编程语言创建 XML Web services,大幅度增大开发人员可用资源量,并允许开发人员随意使用最适合解决身边问题的编程语言。

Visual Studio NET 在很大程度上自动化了将应用程序转换为 XML Web services 的过程,减少了快速创建和部署解决方案所需的时间和工作。

在本质上,XML 将数据与数据的显示方式分开。将 NET 体验与显示特性分开,可使添加新接口技术(如语音和手写识别)变得容易,而无需重编应用程序。

NET 我的服务和其他 NET 构件块服务提供了许多应用程序所需的核心功能,如用户身份验证、通知功能、联系人列表等等,而无需额外的编码工作。

更高的可靠性

借助丰富的处理能力和当前可用的带宽,NET 平台可以利用分布式计算技术。只要处理最有意义或者只要驻留有 XML Web services,处理就会发生,从而分散 CPU 负载并减少网络通信量。

公共语言运行库准备好了一个托管的执行环境,可消除内存泄漏、访问冲突和版本控制问题。

NET 框架强制类型安全、显式代码共享和应用程序隔离,从而保证没有任何 XML Web services 可以影响或非法调用另一个 XML Web services。

集成

在 Microsoft NET 中 XML(由 WWW 联合会 (W3C) 维护的开放标准)的使用消除了数据共享和软件集成的障碍。简单对象访问协议 (SOAP) 是由 W3C 标准化的、基于 XML 的消息传递技术,它指定定位 XML Web services 的所有必需规则,将这些服务集成到应用程序中,并在它们之间进行通讯。公共语言运行库 (CLR) 提供了统一的管理环境,允许用任何编程语言编写的 XML Web services 一起工作。NET 还具有数据库访问能力,允许开发人员将符合 ODBC 的数据存储区引入到其应用程序体系结构中。

通过允许 IT 部门利用其旧式应用程序和数据存储区以及提供专门技能和外包服务的其他供应商的 XML Web services,Microsoft NET 使 IT 部门可以降低内部成本并扩展可向客户提供的功能。Microsoft NET 旨在使来自多个站点和公司的服务可以聚集为供用户使用的宝贵经验。

NET 与安全性

安全性和隐私是创建和提供吸引人的用户体验的核心部分。将计算能力分布于许多系统(您的家庭和公司内部及外部)导致了新类型的挑战。

构建 Microsoft NET 平台时从一开始就考虑到了安全性。通过与个人和管理员的良好操作做法相耦合,它为使用户能够控制其个人和企业信息的计算体验提供了基础。

NET 框架是 NET 平台中居于核心地位的编程引擎,它通过其核心安全功能提供保护客户机和服务器的方法。由于公共语言运行库在核心层透明地处理安全性,因此开发人员可将精力集中于应用程序逻辑。开发人员仍然可以随时使用和扩展安全模型。

评价对 NET 安全性的独立评估

Foundstone:对 NET 框架安全性的独立分析

Foundstone, Inc 和 CORE Security Technologies 的长期安全性分析,涉及前两个 Beta 版本,对 NET 框架的评价是“robust platform for enterprise and Web application security(企业和 Web 应用程序安全性的可靠平台)”。

InfoWorld:NET 框架的安全性决非笑谈

InfoWorld 的评价是“it looks as if Microsoft got it right this time and built security into Net Framework from the ground up(看起来这一次 Microsoft 做对了并从一开始就将安全性构建到 Net 框架中)”

eWeek:Windows 提升了安全性

eWeek Labs 对 Microsoft Windows Net Server Beta 3 进行了测试,发现有重要的安全性改进。

取决于服务端/客户端程序属于那种应用类型:

1 类似于网络游戏/远程控制一类的交互型网络应用,不需要大量数据交换,但需要稳定性好,出错率低,最好使用TCP协议

2 大规模数据传输, TCP或UDP协议都可以 如果你是想传输一个大文件,网络状况又比较好的话, 可以考虑使用基于UDP协议的TFTP 这个协议传输效率很高,速度很快,而且有成型的服务端/客户端代码,首选

----

"比较频繁的传输数据,几乎每秒都要传。"

那用TCP协议就可以 用SystemNetSocketsTcpClient, TcpListener

比较省心

UDP的话如果中间有丢包,或者包顺序混乱的话, 你还得自己动手纠正, 太麻烦

if (FileUpload1HasFile)

{

//指定上传文件在服务器上的保存路径

string savePath = ServerMapPath(filedir + "/" + SystemDateTimeNowYearToString());

//检查服务器上是否存在这个物理路径,如果不存在则创建

if (!SystemIODirectoryExists(savePath))

{

//需要注意的是,需要对这个物理路径有足够的权限,否则会报错

//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘

SystemIODirectoryCreateDirectory(savePath);

}

savePath = savePath + "/" + pmFname;

FileUpload1SaveAs(savePath);//保存文件

//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地址

// create the socket

Socket listenSocket = new Socket(AddressFamilyInterNetwork,

SocketTypeStream,

ProtocolTypeTcp);

// bind the listening socket to the port

IPAddress hostIP = (DnsResolve(IPAddressAnyToString()))AddressList[0];

IPEndPoint ep = new IPEndPoint(hostIP, port);

listenSocketBind(ep);

// start listening

listenSocketListen(backlog);

这样就会在本机的port端口监听,可以在命令提示符下netstat -all查看

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » .NET Framework概述

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情