选择显示字体大小

用vc++6.0的sockets api实现一个聊天室程序

1.vc++网络编程及windows sockets api简介

  vc++对网络编程的支持有socket支持,win.net支持,mapi和isapi支持等。其中,windows sockets api是tcp/ip网络环境里,也是inte.net上进行开发最为通用的api。最早美国加州大学berkeley分校在unix下为tcp/ip协议开发了一个api,这个api就是著名的berkeley socket接口(套接字)。在桌面操作系统进入windows时代后,仍然继承了socket方法。在tcp/ip网络通信环境下,socket数据传输是一种特殊的i/o,它也相当于一种文件描述符,具有一个类似于打开文件的函数调用-socket()。可以这样理解:socket实际上是一个通信端点,通过它,用户的socket程序可以通过网络和其他的socket应用程序通信。socket存在于一个"通信域"(为描述一般的线程如何通过socket进行通信而引入的一种抽象概念)里,并且与另一个域的socket交换数据。socket有三类。第一种是sock_stream(流式),提供面向连接的可靠的通信服务,比如te.net,http。第二种是sock_dgram(数据报),提供无连接不可靠的通信,比如udp。第三种是sock_raw(原始),主要用于协议的开发和测试,支持通信底层操作,比如对ip和icmp的直接访问。

  2.windows socket机制分析

  2.1一些基本的socket系统调用

  主要的系统调用包括:socket()-创建socket;bind()-将创建的socket与本地端口绑定;connect()与accept()-建立socket连接;listen()-服务器监听是否有连接请求;send()-数据的可控缓冲发送;recv()-可控缓冲接收;closesocket()-关闭socket

  2.2windows socket的启动与终止

  启动函数wsastartup()建立与windows sockets dll的连接,终止函数wsaclearup()终止使用该dll,这两个函数必须成对使用。

  2.3异步选择机制

  windows是一个非抢占式的操作系统,而不采取unix的阻塞机制。当一个通信事件产生时,操作系统要根据设置选择是否对该事件加以处理,wsaasyncselect()函数就是用来选择系统所要处理的相应事件。当socket收到设定的网络事件中的一个时,会给程序窗口一个消息,这个消息里会指定产生网络事件的socket,发生的事件类型和错误码。

  2.4异步数据传输机制

  wsaasyncselect()设定了socket上的须响应通信事件后,每发生一个这样的事件就会产生一个wm_socket消息传给窗口。而在窗口的回调函数中就应该添加相应的数据传输处理代码。

  3.聊天室程序的设计说明

  3.1实现思想

  在inte.net上的聊天室程序一般都是以服务器提供服务端连接响应,使用者通过客户端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接的通信过程。因此,程序要在tcp/ip环境下,实现服务器端和客户端两部分程序。

  3.2服务器端工作流程

  服务器端通过socket()系统调用创建一个socket数组后(即设定了接受连接客户的最大数目),与指定的本地端口绑定bind(),就可以在端口进行侦听listen()。如果有客户端连接请求,则在数组中选择一个空socket,将客户端地址赋给这个socket。然后登录成功的客户就可以在服务器上聊天了。

  3.3客户端工作流程

  客户端程序相对简单,只需要建立一个socket服务器端连接,成功后通过这个socket来发送和接收数据就可以了。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons