资源简介
一个简单的聊天室程序源代码!基于Winsock,很好的基础的VC网络编写代码!
代码片段和文件信息
// ClientSocket.cpp : implementation file
//
#include “stdafx.h“
#include “Example2_ChatRoom.h“
#include “ClientSocket.h“
#include “Example2_ChatRoomDlg.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CClientSocket
CClientSocket::CClientSocket()
{
m_aSessionIn=NULL;
m_aSessionOut=NULL;
m_sfSocketFile=NULL;
m_bInit=false;
m_bClose=false;
}
CClientSocket::~CClientSocket()
{
if(m_aSessionIn)
delete m_aSessionIn;
if(m_aSessionOut)
delete m_aSessionOut;
if(m_sfSocketFile)
delete m_sfSocketFile;
}
// Do not edit the following lines which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CClientSocket CSocket)
//{{AFX_MSG_MAP(CClientSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0
/////////////////////////////////////////////////////////////////////////////
// CClientSocket member functions
void CClientSocket::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
CSocket::OnReceive(nErrorCode);
do
{
CMessg temp;
temp.Serialize(*m_aSessionIn);
m_dlg->m_sMsgList+=temp.m_strText;
m_dlg->SetDlgItemText(IDC_SHOWTEXTm_dlg->m_sMsgList);
if(temp.m_tag==1&&m_dlg->m_willchating==FALSE)
//如果有声音过来并且本机的声音设备已经准备好了则首先在本机发出声音
{
memcpy(m_dlg->m_sound.m_cBufferOuttemp.m_bufferMAX_BUFFER_SIZE);
}
int linenum=((CEdit *)(m_dlg->GetDlgItem(IDC_SHOWTEXT)))->GetLineCount();
((CEdit *)(m_dlg->GetDlgItem(IDC_SHOWTEXT)))->LineScroll(linenum);
if(!m_dlg->m_bClient)
{
for(POSITION pos=m_dlg->m_connectionList.GetHeadPosition();pos!=NULL;)
{
CClientSocket * t = (CClientSocket*)m_dlg->m_connectionList.GetNext(pos);
if(t->m_hSocket!=this->m_hSocket)
{
t->SendMessage(&temp);
}
}
}
}
while (!m_aSessionIn->IsBufferEmpty());
}
void CClientSocket::Init(CExample2_ChatRoomDlg * dlg)
{
m_sfSocketFile= new CSocketFile(this);
m_aSessionIn=new CArchive(m_sfSocketFileCArchive::load);
m_aSessionOut=new CArchive(m_sfSocketFileCArchive::store);
m_bClose=false;
this->m_dlg=dlg;
}
BOOL CClientSocket::SendMessage(CMessg * msg)
{
if (m_aSessionOut != NULL)
{
msg->Serialize(*m_aSessionOut);
m_aSessionOut->Flush();
return TRUE;
}
else
{
//对方关闭了连接
m_bClose=true;
CloseSocket();
m_dlg->CloseSessionSocket();
return FALSE;
}
}
void CClientSocket::CloseSocket()
{
if(m_aSessionIn)
{
delete m_aSessionIn;
m_aSessionIn=NULL;
}
if(m_aSessionOut)
{
delete m_aSessionOut;
m_aSessionOut=NULL;
}
if(m_sfSocketFile)
{
delete m_aSessionOut;
m_sfSocketFile=NULL;
}
Close();
m_bInit=false;
m_bClose=true;
}
void CClientSocket::OnClose(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
m_bClose=true;
CloseSocket();
m_dlg->Clos
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6154 2003-07-15 14:45 ChatRoom\ClientSocket.cpp
文件 1882 2003-06-30 14:39 ChatRoom\ClientSocket.h
文件 1401 2003-07-15 14:37 ChatRoom\CMessg.cpp
文件 657 2003-07-15 14:33 ChatRoom\CMessg.h
文件 0 2003-07-15 10:01 ChatRoom\data.txt
文件 1999 2003-10-21 21:02 ChatRoom\Example2_ChatRoom.clw
文件 2217 2003-06-30 10:43 ChatRoom\Example2_ChatRoom.cpp
文件 4928 2003-08-14 11:09 ChatRoom\Example2_ChatRoom.dsp
文件 559 2003-06-30 10:43 ChatRoom\Example2_ChatRoom.dsw
文件 1445 2003-06-30 10:43 ChatRoom\Example2_ChatRoom.h
文件 6132 2003-07-15 14:48 ChatRoom\Example2_ChatRoom.rc
文件 10865 2003-07-15 18:47 ChatRoom\Example2_ChatRoomDlg.cpp
文件 2194 2003-07-15 10:38 ChatRoom\Example2_ChatRoomDlg.h
文件 575488 2003-07-15 14:39 ChatRoom\newdata.txt
文件 3777 2003-06-30 10:43 ChatRoom\ReadMe.txt
....... 1078 2003-06-30 10:43 ChatRoom\res\Example2_ChatRoom.ico
....... 409 2003-06-30 10:43 ChatRoom\res\Example2_ChatRoom.rc2
文件 1017 2003-07-14 19:43 ChatRoom\resource.h
文件 1340 2003-06-30 15:13 ChatRoom\ServerSocket.cpp
文件 1346 2003-06-30 14:33 ChatRoom\ServerSocket.h
....... 493056 2003-02-13 16:39 ChatRoom\Sound\Sound.dll
....... 2500 2003-02-13 16:39 ChatRoom\Sound\Sound.lib
....... 467 2003-02-13 16:33 ChatRoom\Sound\USound2.h
文件 4990 2003-10-21 21:01 ChatRoom\Sound.cpp
文件 1071 2003-08-14 11:09 ChatRoom\Sound.h
文件 219 2003-06-30 10:43 ChatRoom\StdAfx.cpp
文件 1054 2003-06-30 10:43 ChatRoom\StdAfx.h
目录 0 2008-07-16 21:33 ChatRoom\res
目录 0 2008-07-16 21:33 ChatRoom\Sound
目录 0 2008-07-16 21:33 ChatRoom
............此处省略3个文件信息
- 上一篇:nodejs的express实现的1对1即时通讯
- 下一篇:Tomlab试用授权
相关资源
- WebSocket实现一个简单的聊天室以及单
- 基于QT的网络聊天室+收发数据及文件
- 视频聊天室的源代码 可以多人
- Linuxc聊天室,有日志功能可群聊可私
- 简易聊天室源码
- 基于UDP的数据传输与基于TCP的简易聊
- Springboot+websocket 实现多人聊天室/单人
- 基于TCP协议编程的网络聊天室
- linux下基于TCP的多用户聊天室含文档
- libevent聊天室
- WebSocket+Tomcat8实现-Web版即时聊天室
- qt TCP网络编程与聊天室的实现
- 局域网上聊天室程序源码UDP+组播。实
- 基于QT聊天室
- 聊天室小程序源代码两个
- 小程序云开发项目概要设计V2.0.doc 在
- h5聊天室websocket实现
- .NET 4.5 WebSocket简易聊天室、离线消息
- WebSocket聊天室.net
- django与websocket创建简易聊天室
- 基于linux网络聊天室
- 仿别人代码定的nodejs聊天室
- 用winform做的聊天室
- NodeJs实时通讯(WebSocket聊天室)
- 聊天室/多人视频会议系统源码 (Fm
- 网络 基于UDP网络聊天室
- 基于winsocket的聊天室
- Linux C聊天室项目+
- vc socket实现的聊天室,一个服务器,
- 基于tcp/ip协议的简单局域网聊天室
评论
共有 条评论