没有合适的资源?快使用搜索试试~ 我知道了~
Visual C#托管Socket的实现方法
需积分: 10 7 下载量 65 浏览量
2013-07-27
15:49:52
上传
评论
收藏 46KB DOCX 举报
温馨提示
试读
15页
本文详细介绍Visual C#中利用托管Socket实现网络数据传送和接收的实现方法及其注意事项。
资源推荐
资源详情
资源评论
Visual C#托管 Socket 的实现方法
Socket 就是套接字,它是网络编程中最常用遇到的概念和工具。在 TCP/
IP 网络中,传送和接收数据就会经常使用到 Socket,由于使用 Socket 能够在
网络上处理复杂数据,所以在各种网络应用程序中,涉及到数据传送和接收,
一般都会使用 Socket,可见要掌握网络编程,精通 Socket 是非常重要。由于
Socket 本身的复杂性,决定了掌握它是比较困难的。Visual C#是微软公司推
荐的开发.Net 平台应用程序的主要语言,随着.Net 的深入人心,目前很多有远
见的公司都把以前的软件转向了.Net 平台。掌握网络编程始终是学习一种开发
语言的重点,这一点对于 Visual C#也同样如此。Visual C#实现网络功能其
关键也是掌握托管 Socket 的使用方法。本文就来详细介绍 Visual C#中利用
托管 Socket 实现网络数据传送和接收的实现方法及其注意事项。
一.简介 Socket:
Socket 诞生于上个世纪 80 年代初,美国政府的高级研究工程机构
(ARPA)给加利福尼亚大学伯克力(Berkeley)分校提供了资金,委托他们
在 UNIX 操作系统下实现 TCP/IP 协议的开发接口。于是研发人员就为 TCP/IP
网络通信开发了一个 API(应用程序接口)。这个 API 称为 Socket 接口(套接
字)。所以有时候说,Socket 是 TCP/IP 上的 API。
到了上个世纪 90 年代,当时的一些网络开发商,包括现在地 Sun 和
Microsoft 公司等,共同制定了一套 WINDOWS 下的网络编程接口,即
WindowsSockets 规范,简称 WinSock 规范。WinSock 规范是一套开放的、
支持多种协议的 Windows 下的网络编程接口。从 1991 年的 1.0 版到 1995
年的 2.0.8 版,经过不断完善并在 Intel、Microsoft、Sun 等公司的大力支持
下,已成为 Windows 网络编程的事实上的标准。目前,WinSock 规范主要有
1.1 版和 2.0 版。两者的最重要区别是 1.1 版只支持 TCP/IP 协议,而 2.0 版可
以支持多协议。2.0 版有良好的向后兼容性,任何使用 1.1 版的源代码,二进
制文件,应用程序都可以不加修改地在 2.0 规范下使用。
可见 Socket 接口其实是 TCP/IP 网络的 API 接口函数,Socket 数据传输
其实就是一种特殊的 I/O。常用的 Socket 类型有两种:流式
Socket(SOCK_STREAM)和数据报式 Socket(SOCK_DGRAM)。流式是
一种面向连接的 Socket,针对于面向连接的 TCP 服务应用;数据报式 Socket
是一种无连接的 Socket,对应于无连接的 UDP 服务应用。
二.Visual C#中操作 Socket:
虽然 Visual C#可以使用 NetworkStream 来传送、接收数据,但
NetworkStream 在使用中有很大的局限性,利用 NetworkStream 只能传送
和接收字符类型的数据,如果要传送的是一些复杂的数据如:二进制数据等,
它就显得能力有限了。但使用 NetworkStream 在处理自身可操作数据时,的
确要比 Socket 方便许多。Socket(套接字)几乎可以处理任何在网络中需要
传输的数据类型。
我们知道 Visual C#和 Visual C++的区别之一,就是 Visual C#没有
属于自己的类库,而 Visual C++却是有的,Visual C#使用的类库是.Net 框
架为所有开发.Net 平台程序语言提供的一个公用的类库——.Net FrameWork
SDK。Visual C#主要网络功能主要使用.Net FrameWork SDK 中的提供的
二个命名空间“System.Net.Sockets”和“System.Net”。而实现 Socket 使用
的是命名空间“System.Net.Sockets”中的 Socket 类。Visual C#通过创建
Socket 类的实例来实现 Socket 的托管版本。在 Visual C#中创建完 Socket
实例后,可以通过此 Socket 实例的 Bind 方法绑定到网络中指定的终结点,也
可以通过其 Connect 方法向指定的终结点建立的连接。连接创建完毕,就可以
使用其 Send 或 SendTo 方法将数据发送到 Socket;同样使用其的 Receive
或 ReceiveFrom 方法从 Socket 中读取数据。在 Socket 使用完毕后,请使用
其的 Shutdown 方法禁用 Socket,并使用 Close 方法关闭 Socket。表 01 和
表 02 是 Socket 类中的常用属性和方法及其简要说明。
属性 说明
AddressFamil
y
获取 Socket 的地址族。
Available
获取已经从网络接收且可供读取的数据量。
Blocking
获取或设置一个值,该值指示 Socket 是否处于阻塞模
式。
Connected
获取一个值,该值指示 Socket 是否已连接到远程资源。
Handle
获取 Socket 的操作系统句柄。
LocalEndPoint
获取本地终结点。
ProtocolType
获取 Socket 的协议类型。
剩余14页未读,继续阅读
资源评论
frebirds
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功