KouChat_Win32
所属分类:ICQ/即时通讯
开发工具:Visual C++
文件大小:78KB
下载次数:18
上传日期:2013-07-22 17:33:09
上 传 者:
tan435jon
说明: 用Socket实现服务器客户端于一体的局域网即时通讯系统,主要实现单人聊天,群聊,文件传输
(On Socket Server client in one of the LAN instant messaging system, the main single chat, group chat, file transfer)
文件列表:
KouChat_Win32 (0, 2013-07-22)
KouChat_Win32\ChatMoreDlg.cpp (5579, 2013-04-08)
KouChat_Win32\ChatMoreDlg.h (1445, 2013-04-08)
KouChat_Win32\ChatOneDlg.cpp (16286, 2013-04-08)
KouChat_Win32\ChatOneDlg.h (2001, 2013-04-08)
KouChat_Win32\Common.cpp (2667, 2013-04-08)
KouChat_Win32\Common.h (692, 2013-04-08)
KouChat_Win32\Desktop_1.ini (8, 2013-04-08)
KouChat_Win32\KouChat.aps (23424, 2013-04-08)
KouChat_Win32\KouChat.clw (3332, 2013-04-08)
KouChat_Win32\KouChat.cpp (3174, 2013-04-08)
KouChat_Win32\KouChat.dsp (5702, 2013-04-08)
KouChat_Win32\KouChat.dsw (539, 2013-04-08)
KouChat_Win32\KouChat.h (1365, 2013-04-08)
KouChat_Win32\KouChat.opt (48640, 2013-07-22)
KouChat_Win32\KouChat.plg (2721, 2013-07-22)
KouChat_Win32\KouChat.rc (8501, 2013-04-08)
KouChat_Win32\KouChatDlg.cpp (34647, 2013-04-08)
KouChat_Win32\KouChatDlg.h (3323, 2013-04-08)
KouChat_Win32\NicknameDlg.cpp (1863, 2013-04-08)
KouChat_Win32\NicknameDlg.h (1272, 2013-04-08)
KouChat_Win32\res (0, 2013-07-22)
KouChat_Win32\resource.h (1601, 2013-04-08)
KouChat_Win32\res\bitmap2.bmp (250, 2013-04-08)
KouChat_Win32\res\chaticon.bmp (1342, 2013-04-08)
KouChat_Win32\res\Desktop_1.ini (8, 2013-04-08)
KouChat_Win32\res\KouChat.rc2 (399, 2013-04-08)
KouChat_Win32\res\msg.bmp (1152054, 2013-04-08)
KouChat_Win32\res\PHONE16.ICO (766, 2013-04-08)
KouChat_Win32\res\UserChat.ico (25670, 2013-04-08)
KouChat_Win32\SocketListen.cpp (2138, 2013-04-08)
KouChat_Win32\SocketListen.h (1333, 2013-04-08)
KouChat_Win32\SocketRecv.cpp (2355, 2013-04-08)
KouChat_Win32\SocketRecv.h (1503, 2013-04-08)
KouChat_Win32\SocketSend.cpp (1679, 2013-04-08)
KouChat_Win32\SocketSend.h (1352, 2013-04-08)
KouChat_Win32\StdAfx.cpp (209, 2013-04-08)
KouChat_Win32\StdAfx.h (2349, 2013-04-08)
企业通设计思想:
100% 1. 主窗口上使用套接字m_socketMain:6000来收发上线和离线通知
100% 2. 聊天窗口使用套接字m_socketChat:6001来收发文字信息
3. 聊天窗口使用套接字m_socketFile:6002来收发文件
100% 4. 群聊窗口使用套接字m_socketMore:6003来收发文字信息
100% 5. 将GetAllIP()放到子线程,解决启动较慢的问题
100% 6. 研究RichEdit控件,使字体大小和颜色可变
100% 7. 点击托盘的闪烁图标后,打开 m_list 有闪烁标志的窗口
8. 登录和备注计算机名
100% 9. 每隔5分钟刷新在线和离线状态
100% 10. 本机显示到list的最前面
100% 11. 主窗口隐藏后,要隐藏所有其他的窗口
张三于 23:23:23 向你发送文件
文件1.RAR (345.2K)
接收,另存为,拒绝
发送途中终止
接收途中终止
断点续传
TCP文件传输过程描述:
0. ListenServer已经事先在发送端启动,并阻塞于while(1) { ::accept(); }中的accept语句处,等待接收端的connect.
1. 接收端点击接收某个文件,该文件信息保存在4 fileInfo中,将4 fileInfo通过UDP发给发送端
2. 发送端收到UDP发来的4 fileInfo之后, 通过UDP向接收端回发5 fileInfo信息,告知已经收到4 fileInfo.
3. 接收端收到UDP发来的5 fileInfo之后, 才正式发送TCP 的 ::connect()命令,并启动接收循环
4. 发送端的Listen Server的while循环中, accept阻塞解除,
while (1)
{
m_pSendSock = new CSocketSend();
m_pSendSock->m_sockConn = ::accept(m_sockSvr, (SOCKADDR *)&addrFrom, &len); //阻塞函数
m_pSendSock->m_fileInfo = m_fileInfo; //此处m_fileInfo已经在第2步赋值
m_pSendSock->Start(); //Start() 中封装了connect, 发送文件循环等
}
近期下载者:
相关文件:
收藏者: