C#中 TCP 通讯的实现方法 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 服务...