计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

探析网上交谈工具的设计与实现(2)

2013-09-03 01:04
导读:服务器端是一个Windows窗体应用程序,命名为ChatServer。当运行服务器程序时,单击服务器窗体上的“启动”按钮后,便启动了服务器进程。为了使用Socket对

  服务器端是一个Windows窗体应用程序,命名为ChatServer。当运行服务器程序时,单击服务器窗体上的“启动”按钮后,便启动了服务器进程。为了使用Socket对象和Thread对象,在代码文件中加入名字空间System.Net、System.Net..Socket、System..Threading的引用。
  在服务器端使用了多线程,每个用户通过一个单独的线程进行连接,当服务器开始运行时,它就启动一个线程等待客户连接(在方法StartListen()中实现)。当接收到一个请求时,服务器立即启动一个新的线程来处理和该客户端的信息交互(在方法ServiceClient()中实现)。自定义了一个Client类,它用于保存每个当前在线用户的用户名和与服务器连接的Socket对象。当Socket连接一旦建立,就马上将其保存在一个Client对象中,以便让每个用户有自己的Socket,以后可以对不同用户的Socket对象进行操作,实现与客户端的数据交换。
  在服务器窗口中,单击“启动”按钮,进入btnStart_Click处理程序。在该处理程序中,创建了一个服务器套接字并且监听本机IP地址中的一个指定的端口,同时启动一个线程等待用户连接(在方法StartListen()中实现)。StartListen()方法是在新的进程中进行的操作,它主要用于当接收到一个客户端请求时,确认与客户端的连接,并且立即启动一个新的线程来处理和该客户端的信息交互(在方法ServiceClient()中实现)。ServiceClient()方法用于和客户端进行数据通信,包括接收客户端的请求,根据不同的请求命令,执行相应的操作,并将处理结果返回到客户端,此方法完成了服务器的主要的工作。SendToClient()方法实现了向客户端发送命令请求的功能,它利用不同用户保存的Socket对象,向对应的用户发送命令请求。GetUserList()方法实现了获取当前在线用户列表的功能,它通过对clients数组的遍历,获取当前在线用户的用户名,用字符串发回。 (转载自http://zw.NSEaC.com科教作文网)
  2.客户端的实现
  客户端是一个Windows窗体应用程序,命名为ChatClient。当运行客户端程序时,首先进入登录界面,输入用户名,单击“登录”按钮后,进入交谈主窗口(命名为Login),在主窗口中可以向服务器发送信息,同时可以接收从服务器返回的信息。
  (1)Login.cs文件的实现
  Login.cs文件是登录窗体的代码文件,为了使用Socket对象,在代码文件中加入名字空间System.Net 、System.Net..Socket的引用,它主要实现了创建客户端套接字同时连接到服务器指定端口,把用户名和创建的客户端套接字传递给ChatClient窗体。

上一篇:探析反向代理在电子商务网站安全中的应用 下一篇:没有了