在用WINSOCK实现聊天室时的一些总结

王朝system·作者佚名  2006-01-22
窄屏简体版  字體: |||超大  

1、多线程方面,不一定要用STATIC,可以用

UINT MyThread(LPVOID P);//处理的主要函数。要放在类定义时的后边

AfxBeginThread(MyThread,0);

AfxEndThread(0);

2、//得到主窗口句柄

CMyServerDlg *dlg=(CMyServerDlg*)AfxGetApp()->GetMainWnd();

//等待连接

dlg->AllClientList[dlg->nConnectedClient]=accept(

(dlg->SvrSocket),

(SOCKADDR*)&(dlg->Cli),

&nAddrLen

);

但在线程处理函数中要用到主窗口里得如上用。

3、在存储客户端列表时的方面可以有

A:用数组形式 SOCKET AllClientList[MAX_CLIENT_COUNT];

B:用MFC里的 CPtrList m_connectionList;//已连接用户的存储链表

以上两种均可以完成

4、代码风格

if(SOCKET_ERROR==dlg->AllClientList[dlg->nConnectedClient])

{

continue;

}

//*****************************************************************************

//软件:聊天室服务器

//作者:安美洪

//功能:实现多用户聊天

//版本:V1.0

//版权:综联科技 @2006

//*****************************************************************************

/*********************对服务器初始化工作***********************************/

WSADATA wsaData;

WSAStartup(MAKEWORD(2,0),&wsaData);

// 客户端列表的初始化

for(int i=0; i<MAX_CLIENT_COUNT; ++i)

AllClientList[i] = NULL;

nConnectedClient = 0;

GetDlgItem(IDSTOP)->EnableWindow(FALSE);

/*

* Copyright (c) 2006,广东综联数码科技有限公司(成都)

* All rights reserved.

* 文件名称:GoQoMessage.h

* 文件标识:见配置管理计划书

* 文件摘要:够酷即时通讯系统消息结构

*/

#define MAX_MSG_LEN 256

#define BYTE int

#define DWORD unsigned short

#define DWORD32 unsigned int

/*

* 当前版本:1.0

* 软件作者:安美洪

* 完成日期:2006年1月7日

*

* 取代版本:无

* 原作者 :无

* 完成日期:无

*/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航