|
[摘要] 使用Visual c#.NET中的Socket编程的关键技术,以及多线程的知识实现一个简单的网上交谈工具,它提供的功能有:用户登录、显示所有当前的在线用户、显示进行交谈的用户信息、与选定的用户进行交谈,并且支持私人交谈。对于开发一般性的通信软件,有一定的参考价值。
[关键词] Socket TCP协议 服务器 客户端 线程
一、引言
随着信息技术的高速发展,网上交谈已成为人们学习和工作的重要手段,那么如何设计合理的、人性化的网上交谈工具就成为当务之急。使用Visual c#.NET中的Socket编程技术,以及多线程的知识可快速、方便地设计理想的网上交谈工具。一个Socket通信无论功能多么齐全、程序多么复杂,其基本结构均应包括以下步骤:创建Socket对象,建立连接;打开连接到Socket的输入/输出流;对Socket进行读写操作;关闭Socket套接字,关闭流。
二、TCP协议通信的流程
TCP协议是面向连接的协议,它的实现需要数据发送方和数据接收方建立数据通信连接,它的具体流程如下:
1.服务器端首先创建服务器套接字
2.服务器套接字监听一个端口,等待客户端的请求
3.客户端创建一个客户端套接字
4.客户端向服务器发送连接请求
5.服务器确认与客户端的连接
6.客户端和服务器利用建立的连接进行通信
7.通信完毕后,客户端和服务器关闭各自的连接
三、Socket编程简介
1.利用Socket建立服务器程序
要用Socket建立一个TCP服务器程序,一般需要以下几个步骤:
(1)创建一个服务器套接字,用IP地址和端口初始化服务器
(2)监听服务器端口
(3)确认与客户端的连接
(4)处理客户端的请求并回应客户端
(5)断开客户端的连接,释放客户端的连接
(6)关闭服务器,释放服务器连接
2.利用Socket建立客户端程序
要用Socket建立一个TCP客户端程序,一般需要以下几个步骤:
(1)创建客户端套接字
(2)连接服务器
(3)得到与服务器通信的流通道
(4)向服务器发送数据
(5)接收从服务器发回的数据
(6)断开连接
四、设计方案
1.服务器端的设计
服务器端管理着交谈任务,它维持着一张当前在线用户的列表,转发用户发送来的信息,主要功能如下:
监听本机IP地址中的一个指定的端口。
当有客户端向该端口发出请求时,服务器程序立即建立一个与该客户端的连接并启动一个新的线程来处理该客户端的所有请求。
根据客户端发送来的各种不同的请求,执行相应的操作,并将处理结果返回给该客户端。服务器能识别4种请求命令:CONN(建立新的连接)、CHAT(聊天)、PRIV(私聊)和EXIT(离开),服务器接收ASCII字符信息,用“|”分隔信息的各个部分,一条信息包含一条命令,一个或多个信息参数。
2.客户端的设计
客户端应用程序包含用户登录窗口和用户交谈的主窗口,它允许用户登录到服务器,可以向服务器发送信息,同时可以接收从服务器返回的信息,设计的主要功能如下:
向远程服务器发送连接请求。
得到服务器程序的确认后,建立与服务器的连接,并获得与服务器交互的流通道(NetworkStream)。
通过网络流通道与服务器端的程序进行数据通信。向服务器发送服务器能够识别的以上4种命令请求,同时也接收服务器发回的命令。客户端能够识别的命令有JOIN(通知当前在线用户有新的用户进入聊天室)、LIST(更新当前在线用户)和QUIT(关闭客户端程序)。客户端程序接收ASCII字符信息,用“|”分隔信息的各个部分,一条信息包含一条命令,一个或多个信息参数。 |
|