登录
首页 » VC++源码 » VC++ ChatRoom聊天室(客户端+服务端)

VC++ ChatRoom聊天室(客户端+服务端)

于 2022-03-02 发布 文件大小:239.16 kB
0 242
下载积分: 2 下载次数: 1

代码说明:

VC++ 聊天室(客户端+服务端),CS架构的ChatRoom聊天源码,服务端用来创建公共的聊天服务,比如创建用户列表、显示聊天消息、监控用户数量和在线人数;客户端是提供给用户使用的真正聊天程序,可完成大部分的聊天操作,比如发送聊天内容、选择私聊对象、查看聊天黑名单、设置加密传输消息、设置加密密钥、密文、选择发送表情、自定义昵称等功能。聊天窗口通过调主对话框的成员函数GetMessage来显示聊天信息,当用户数增加时,播放欢迎音乐,当用户数减少时播放离开音乐。   源代码部分,请参照源码目录中命名的文件夹,查看对应功能。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C语言写的超强悍音乐播放器
    这是一款用C写的播放器,超强超漂亮,C语言写的超强悍音乐播放器源代码,先来看运行截图,播放器的界面那可是相当漂亮吧。而且播放功能也很强大。程序主界面经过了美化,运行后在Windows托盘处显示图标,这个程序是大家学习C多媒体编程绝佳的范例,对C感兴趣的不要错过哦。
    2022-02-15 07:45:57下载
    积分:1
  • VC++ 创建可以显示“最近打开”文件的功能
    VC++ 创建可以显示“最近打开”文件的功能,也就是为菜单项增添历史记录的功能,让打开的文件记录显示在菜单列表中,方便用户下一次打开文件,挺人性化的一个功能。现在的word、WPS等软件,打开后,用户都可以从菜单中选择最近打开的文件,快速找到自己的文档,本VC++源码就是模拟了这一功能。运行效果请参见下边的测试截图。
    2023-05-17 09:10:03下载
    积分:1
  • VC++ 6.0 定制分割条(分隔条)的样式及大小
    VC++ 6.0 定制分割条,也就是窗体的分隔条,将窗口分隔成若干个部分,用来显示不同的内容,该窗格视图为CStaticSplitWnd4View,该窗格大小不能通过拖动改变,不过我们可以通过菜单命令动态改变大小,窗格视图为CView2,该窗格大小不能通过拖动改变,窗格视图CView3和CView4都可以通过分隔条的拖动来改变视图大校   本示例中的分隔条经过了初级的美化,而且也向用户展示了,如何通过分割条来固定分栏窗格视图的大小,如何让分隔条不支持拖动等功能。
    2023-08-22 18:20:04下载
    积分:1
  • VC++ 多文档程序实现为新建的文档设置显示字体
    VC++ 多文档程序实现为新建的文档设置显示字体,m_str="多文档应用程序实例!";//输出文本   CFontDialog dlg;//字体对话框   dlg.GetCurrentFont(&m_lf);   if(dlg.DoModal()==IDOK)//显示对话框   dlg.GetCurrentFont(&m_lf);//获取用户设置的字体信息   return TRUE;   CString str=pDoc->m_str;//获取输出文本   LOGFONT lf=pDoc->m_lf;//获取字体结构   CFont *pFont=new CFont;   pFont->CreateFontIndirect(&lf);//创建字体   CFont *poldFont=pDC->SelectObject(pFont);//载入DC   pDC->TextOut(40,40,str);//输出文本   pDC->SelectObject(poldFont);//恢复字体
    2022-12-19 01:50:03下载
    积分:1
  • VC 按1:1 按宽度和高度 平铺拉伸放大缩小图片
    本程序为VC++缩放图片的小示例,可按宽度、高度、充满、居中显示等多种方式显示图片,具体来说可完成以下放大或缩小图片的功能:   //1:1比例,不放大也不缩小:   void CZoomImgDemoDlg::On11()   {    m_wndImage.SetStrechType(STRECH_1_1);   }   //按宽度放大:   void CZoomImgDemoDlg::OnFullX()   {    m_wndImage.SetStrechType(STRECH_FULL_X);   }   //按高度   void CZoomImgDemoDlg::OnFullY()   {    m_wndImage.SetStrechType(STRECH_FULL_Y);   }   //充满窗口   void CZoomImgDemoDlg::OnFull()   {    m_wndImage.SetStrechType(STRECH_FULL);   }   //居中显示,大小为窗口的一半   void CZoomImgDemoDlg::OnCenter()   {    m_wndImage.SetStrechType(STRECH_CENTER);   }
    2022-01-28 02:37:20下载
    积分:1
  • VC 电话录音的实现
    这个VC 源码模拟实现了电话录音的功能,运行时显示通道信息,程序首先要加载驱动程序,检查可用的通道数量,设置CardList列表扩展风格,然后显示使用的通道信息,包括了通道号,通道类型,状态,信息。并定义了电话的三种状态,即:内线、外线、悬空。在外线来电话状态,可以启动录音程序,摘机,开始录音,挂机停止录音,录音过程中判断电话是否挂机,双保险。
    2023-06-20 11:50:03下载
    积分:1
  • 毫秒级定时器 VC范例及
    VC++编写的毫秒级定时器实例,上一次的终止值变成新的起始值,发送消息通知对话框该更新时间了。   //更新时间   void CMilliSecondDlg::OnUpdateTime()   {    struct _timeb timebuffer;    char *timeline;    //获得毫秒级的时间    _ftime( &timebuffer );    timeline = ctime(&(timebuffer.time));    //格式化时间    m_strTime.Format("当前时间是:%.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20]);    UpdateData(FALSE);   }
    2023-05-15 18:00:02下载
    积分:1
  • VC++使用标签控件创建TAB标签页
    VC++使用标签控件创建标签页,向大家展示VC++中基本标签控件的使用方法。如效果图所示的标签窗口,一共是创建了两个标签,单击后可切换对应的内容,在WEB开发中,这种TAB功能也有很普遍的应用。你可参考如下对TAB标签的定义:   TC_ITEM tcItem;//标签结构   tcItem.mask=TCIF_TEXT;   tcItem.pszText="标签1";   m_ctlTab.InsertItem(0,&tcItem);//添加Tab标签页   tcItem.pszText="标签2";   m_ctlTab.InsertItem(1,&tcItem);//添加Tab标签页   m_ctlTab.SetCurSel(0);//设置Tab标签1为选中状态   GetDlgItem(IDC_STATIC1)->ShowWindow(TRUE);   GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);//隐藏静态控件2   GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);   GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);//隐藏按钮控件2   CRect rect1,rect2;   GetClientRect(rect1);   GetDlgItem(IDC_STATIC1)->GetClientRect(rect2);   GetDlgItem(IDC_STATIC1)->MoveWindow((rect1.left+50),(rect1.top+80),rect2.Width(),rect2.Height());//移动静态控件1   GetDlgItem(IDC_BUTTON1)->GetClientRect(rect2);   GetDlgItem(IDC_BUTTON1)->MoveWindow((rect1.left+80),(rect1.top+120),rect2.Width(),rect2.Height());//移动按钮控件1
    2022-03-29 18:20:27下载
    积分:1
  • VC 6.0 获得驱动器序列号
    VC 6.0 获得驱动器序列号,本例子中可以指定驱动器分区,也就是大家说的D盘、E盘,每个磁盘分区的序列号,这个序列号标识ID分区后由系统自动指定,我们可编写以下代码实现此功能:   //获得实际存储驱动器号的字符串长度   dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)*sizeof(TCHAR);   //如果字符串不为空,则表示有正常的驱动器存在   if (dwNumBytesForDriveStrings!=0) {    //分配字符串空间    hHeap=GetProcessHeap();    lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,    dwNumBytesForDriveStrings);    //获得标明所有驱动器的字符串    GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);    //将驱动器一个个放到下拉框中    while (*lp!=0) {    Driver->AddString(lp);    lp=_tcschr(lp,0)+1;    }   }
    2022-02-06 01:57:21下载
    积分:1
  • VC 扫描仪控制程序
    这是一个在VC++环境下实现的扫描仪扫描管理程序,用于启动扫描和停止扫描,只是实现基本的扫描仪控制,不过本程序的顺利运行需要扫描仪支持,且是指定型号,窗口中对应的功能,由下面的按钮事件来响应:   开始扫描:   void CScanManageDlg::OnButton1()   {    m_Scan.ScannerAvailable();    m_Scan.OpenScanner();    m_Scan.StartScan();   }   停止扫描:   void CScanManageDlg::OnButton2()   {    m_Scan.StopScan();   }
    2022-05-27 18:23:01下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载