Welcome![Sign In][Sign Up]
Location:
Search - vc c sock

Search list

[WinSock-NDISTCP实现客户服务器聊天程序

Description:

 

操作系统课程设计任务书


一、设计题目:多机进程通信

应用Socket进程通信技术编写聊天室程序,实现基于服务器的并发多机信息转发。如果各客户端在线则可以实时聊天、发送接收文件,如果某客户端离线,则发送给他的消息可由服务器端进行内容缓存,待重新连线后可以自动接收通过服务器转发的信息或文件。缓存与转发的控制算法可参考操作系统课程中生产者消费者进程同步方法、缓冲池技术等相关理论。
二、设计思路和功能的详细描述
采用TCP协议,所以属于客户机/服务器模式,因此需要聊天服务器端和聊天客户端两个程序,实现的功能是:任意一台装有客户端程序的计算机都可以通过服务器端的IP地址与服务器相连,然后进入聊天室与连接到服务器的其他客户进行聊天。当客户聊天结束时,可以点断开与服务器断开连接,以释放进程让其他等待的客户进入聊天室,本聊天室最大同时支持50个客户端的连接,如果服务器配置较高可以修改程序来增加同时连接数。
三、采用的方法、技术、运行环境及其配置
本聊天程序采用TCP协议,用VC++编写,属于客户机/服务器模式。采用了多线程的机制。其中使用windows Sockets实现多台计算机(多个进程)间的通信,SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。客户机/服务器模式中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务即对客户的请求作出适当的反应。本聊天程序就是基于这中思想实现的,程序分为两大部分:TCP聊天服务器端和TCP聊天客户端。两者都拥有各自的SOCKET接口,其中服务器端SOCKET接口需要绑定到固定地址上(实现语句:ock=Socket(AF_INET,SOCK_STREAM,0);),等待客户端的连接(实现语句:listen(sock,5);)。等待客户端的连接的过程就是通过多进程机制来实现的。
聊天程序是在VISUAL C++6.0上编译实现的,在WINDOWS2000,XP上测试运行成功。
对客户计算机配置无特殊要求,由于所设置的最大连接进程为50,所以对服务器要求也不高。
四、关键源程序及其详细的注释
<一>、服务器端
1
、Socket初始化
//
初始化对话框
BOOL CCSocketDlg::OnInitDialog()
{

count=0;

m_list.InsertColumn(0,"消息");

m_list.SetColumnWidth(0,435);

m_edit.SetLimitText(99);

.

.

.

.

 


Platform: | Size: 55808 | Author: lenjear | Hits:

[DocumentsVC雕虫小技集

Description: socket网络编程整理资料-socket programming collate information network
Platform: | Size: 21504 | Author: 圣展 | Hits:

[Windows Developsocket3

Description: 简单soket c/s通讯示例 采用VC语言,也通过运行,有算法简介。-Simple routine of socket c/s communication based on VC, which pass debug and can run with arithmetic description.
Platform: | Size: 79872 | Author: 王士明 | Hits:

[Ftp Clientfce4c12ftpclient

Description: 用VC写的基于C++和socker的一个FTP客户端,可以实现简单的FTP上传和下载-VC was based on the C and socker an FTP client, can simple FTP upload and download
Platform: | Size: 191488 | Author: 翔云 | Hits:

[Windows Developsocketvczx_chatroom

Description: 功能比较齐全的高级SOCKET聊天室设计源代码-more complete functional senior SOCKET chat room design source code
Platform: | Size: 82944 | Author: yanyanlu | Hits:

[Internet-Networkvc_and_linux_socket

Description: linux下用C编写的服务器端和在WINDOWS下用VC写的客户端之间的网络通信程序-under linux prepared by the C-terminal server and Windows using VC written between the client Network Communication Program
Platform: | Size: 1971200 | Author: 黄文 | Hits:

[TCP/IP stackHCserver

Description: vc++6.0写的一个socket小例子 客户端-vc 6.0 socket write a small example of the client
Platform: | Size: 53248 | Author: meng | Hits:

[TCP/IP stackHSserver

Description: vc++6.0写的一个socket 小例子,服务器端的-vc 6.0 socket write a small example, the server-
Platform: | Size: 46080 | Author: meng | Hits:

[CommunicationEVC_socket

Description: 基于Embedded Visual C++的socket编程,包括TCP server和TCP client-based Embedded Visual C socket programming, including TCP server and TCP client
Platform: | Size: 74752 | Author: 金雷 | Hits:

[TCP/IP stacksocket

Description: VC实现的socke通信,简单易懂 分为服务端和客户端。 使用VC6即可打开项目工程-VC realize the socke communications, is divided into easy-to-read-side and client services. VC6 can use to open the Project
Platform: | Size: 7340032 | Author: lidaoguang | Hits:

[Internet-Networksocket_c_ftp

Description: 一个在VC下的windows socket编程是用来做简单的文件传输,不是MFC的,是控制台下的编程,比较适合初学者学习,我用的是C语言编程,注意要在VC中的project-setting-link中加入ws2_32.lib否则会有编译错误-A VC under windows socket programming is used to make a simple file transfer, instead of MFC, is under the console programming, more suitable for beginners to learn, I use the C language programming, pay attention to the VC in the project-setting-link will be added to ws2_32.lib otherwise compile error
Platform: | Size: 3072 | Author: 陈鸡洋 | Hits:

[Consolesocket

Description: 使用C++在VC6.0的控制台下编写的简单soket通信程序。-The use of C++ In VC6.0 console soket prepared with a simple communication program.
Platform: | Size: 15360 | Author: | Hits:

[CSharpSOCK-Connect-VC-code

Description: SOCK通信软件VC源代码,非常实用的学习材料,有助于提高c#编程-SOCK communications software source code VC
Platform: | Size: 2451456 | Author: 小明 | Hits:

CodeBus www.codebus.net