《C__Socket多线程编程实例》.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C__Socket多线程编程实例》.pdf

C# Socket 多线程编程实例 C#是微软随着VS.net 新推出的一门语言。它作为一门新兴的语言,有着C++ 的强健,又有 着VB 等的RAD 特性。而且,微软推出C#主要的目的是为了对抗Sun 公司的Java 。大家都 知道Java 语言的强大功能,尤其在网络编程方面。于是,C#在网络编程方面也自然不甘落 后于人。本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识,以期能 使大家对此有个大致了解。首先,我向大家介绍一下套接字的概念。 套接字基本概念: 套接字是通信的基石,是支持TCP/IP 协议的网络通信的基本操作单元。可以将套接字 看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界 面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽 象概念。套接字通常和同一个域中的套接字交换数据 (数据交换也可能穿越域的界限,但这 时一定要执行某种解释程序)。各种进程使用这个相同的域互相之间用 Internet 协议簇来进 行通信。 套接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般仅在同一 类的套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接字间也照样可以通 信。套接字有两种不同的类型:流套接字和数据报套接字。 套接字工作原理: 要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户机端,我们称 之为ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为 三个步骤:服务器监听,客户端请求,连接确认。 所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连 接的状态,实时监控网络状态。 所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的 套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套 接字的地址和端口号,然后就向服务器端套接字提出连接请求。 所谓连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求, 它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端, 一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接 收其他客户端套接字的连接请求。 C# 中的套接字编程实例: 通过向大家简单的介绍套接字的基本概念和实现套接字编程的基本原理,我想大家对 套接字编程已有了初步的了解。不过,上面介绍的仅仅是基本概念和原理,要真正运用还是 需要一定的工作的。对基本概念和原理的真正理解的最好方法莫过于自己动手做一个实例, 下面我就向大家介绍一个很好的用C#实现套接字编程的实例――聊天室程序。 本程序是基于C/S (服务器/客户端)构架的,程序包含一个服务器端的应用程序和一 个客户端的应用程序。首先,在服务器上运行服务器端的应用程序,该程序一运行就开始服 务器监听。然后,在客户机上就可以打开客户端的应用程序。程序打开后可以与服务器端应 用程序进行连接,即进行客户端请求。在连接确认后,客户端用户可以和其他的客户端用户 进行聊天。客户端人数没有限制,同时还支持“悄悄话”聊天模式,支持聊天记录。所以这是 一个学习套接字编程的相当不错的例子。而且,程序中为了处理每个客户端的信息还用到了 多线程机制。在每个客户端与服务器端连接成功后,它们之间就建立一个线程。这样运用了 多线程之后,客户端之间就不会相互影响,即使其中一个出了错误也不会影响到另一个。 下面,我就向大家具体介绍该实例: 服务器端程序: 1. 打开 VS.net ,新建一个 C# 的模板为“Windows 应用程序” 的项目,不妨命名为 “ChatServer” 。 2 . 布置界面。只需在界面上添加一个 ListBox 控件即可,该控件主要用于显示客户 端的用户的一些信息的。图象如下: 3. 服务器端程序的代码编写。 对于服务器端,主要的作用是监听客户端的连接请求并确认其请求。程序一开始便打开一个 StartListening ()线程。 private void StartListening() { listener = new TcpListener(listenport); listener.Start(); while (true)

文档评论(0)

wgvi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档