CAsyncSocket 网络编程求教,该如何处理

CAsyncSocket 网络编程求教
做一个聊天加位图传输的软件开发学习,客户端使用的是最基础的socket,服务器使用的是CAsyncSocket,感觉有些不能理解CAsyncSocket,刚学习网络编程,希望大家帮助。

BOOL CSK009Dlg::RecvData(CClientSocket *pSocket)
{
int nretval;
char buffer[1200];
long lType, lLength;
memset(buffer,0,1200);
nretval = pSocket->Receive(buffer, sizeof(long) * 2, 0);
pLSSocket=pSocket;
lType = *(long*)buffer;
lLength = *(long*)(buffer + sizeof(long));
if(lType == MH_TYPE && lLength <= 1024 &&nretval == sizeof(long) * 2)
{
nretval =  pSocket->Receive(buffer + sizeof(long) * 2, lLength, 0);
int nLength = nretval + sizeof(long) * 2;
SendData(buffer, nLength);
}
        return TRUE;
}

BOOL CSK009Dlg::SendData(const char *buffer, const int len)
{
POSITION pos = m_UserInfoList.GetHeadPosition();
while(pos != NULL)
{
USERINFO *p = (USERINFO*)m_UserInfoList.GetNext(pos);
if (p->psock!=pLSSocket)
{
p->psock->Send(buffer, len, 0);
}
}
return TRUE;
}
此系统采用的是B/S模式,服务器是转发数据的,就是将一个客户端的数据转发到另一个客户端。
以上是聊天信息的服务器端的收发程序,我想在此基础上加上截图的数据及位图结构及数据的转发,请大神帮忙,位图数据很多,怎么处理?


谢谢!!!
------解决方案--------------------
找个有文件传输功能的聊天程序代码看看吧
搜索"文件传输 聊天"就有了
这种东西,一般人就算有代码,也不能给你,又懒得改成例子给你

------解决方案--------------------
如不想设计复杂的协议
可以用两个socket端口
一个负责聊天
另一个传位图