-
大小: 24.03MB文件類型: .rar金幣: 1下載: 0 次發布日期: 2023-06-21
- 語言: C/C++
- 標簽: Socket??CAsyncSocket??TCP??
資源簡介
一個簡單且簡陋的小測試程序,支持服務器對某客戶端,服務器對所有客戶端,客戶端之間的通信。TCP Socket基于CAsyncSocket的非阻塞異步通信。效果圖詳見:http://blog.chinaunix.net/uid-28394603-id-5163195.html
代碼片段和文件信息
//?NSocket.cpp?:?實現文件
//
#include?“stdafx.h“
#include?“TCPClient.h“
#include?“NSocket.h“
//?NSocket
NSocket::NSocket(CTCPClientDlg?*?dlg)
{
m_parentDlg?=?dlg;
}
NSocket::~NSocket()
{
}
//?NSocket?成員函數
void?NSocket::OnConnect(int?nErrorCode)
{
//?TODO:?在此添加專用代碼和/或調用基類
if(!nErrorCode)
{
m_parentDlg->printfMsg(_T(“Connecting?to?server!“));
m_parentDlg->OnConnectSucceed();
}
else
{
switch(nErrorCode)
{
case?WSAEADDRINUSE:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?specified?address?is?already?in?use.“));
break;
case?WSAEADDRNOTAVAIL:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?specified?address?is?not?available?from?the?local?machine.\n“));
break;
case?WSAEAFNOSUPPORT:?
m_parentDlg->printfMsg(_T(“Connect?Faild:Addresses?in?the?specified?family?cannot?be?used?with?this?socket.\n“));
break;
case?WSAECONNREFUSED:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?attempt?to?connect?was?forcefully?rejected.“));
break;
case?WSAEDESTADDRREQ:?
m_parentDlg->printfMsg(_T(“Connect?Faild:A?destination?address?is?required.“));
break;
case?WSAEFAULT:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?lpSockAddrLen?argument?is?incorrect.“));
break;
case?WSAEINVAL:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?socket?is?already?bound?to?an?address.“));
break;
case?WSAEISCONN:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?socket?is?already?connected.“));
break;
case?WSAEMFILE:?
m_parentDlg->printfMsg(_T(“Connect?Faild:No?more?file?descriptors?are?available.“));
break;
case?WSAENETUNREACH:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?network?cannot?be?reached?from?this?host?at?this?time.“));
break;
case?WSAENOBUFS:?
m_parentDlg->printfMsg(_T(“Connect?Faild:No?buffer?space?is?available.?The?socket?cannot?be?connected.“));
break;
case?WSAENOTCONN:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?socket?is?not?connected.“));
break;
case?WSAENOTSOCK:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?descriptor?is?a?file?not?a?socket.“));
break;
case?WSAETIMEDOUT:?
m_parentDlg->printfMsg(_T(“Connect?Faild:The?attempt?to?connect?timed?out?without?establishing?a?connection.?“));
break;
default:
TCHAR?szError[256];
_stprintf_s(szError?_T(“Connect?Faild:?%d“)?nErrorCode);
m_parentDlg->printfMsg(szError);
break;
}
}
CAsyncSocket::OnConnect(nErrorCode);
}
?
void?NSocket::OnReceive(int?nErrorCode)
{
//?TODO:?在此添加專用代碼和/或調用基類
m_parentDlg->onReceive();
CAsyncSocket::OnReceive(nErrorCode);
}
void?NSocket::OnClose(int?nErrorCode)
{
//?TODO:?在此添加專用代碼和/或調用基類
m_parentDlg->onClose();
CAsyncSocket::OnClose(nErrorCode);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????205312??2015-08-17?14:24??TCPChatRoom\TCPClient\Debug\TCPClient.exe
?????文件????1236820??2015-08-17?14:24??TCPChatRoom\TCPClient\Debug\TCPClient.ilk
?????文件????7031808??2015-08-17?14:24??TCPChatRoom\TCPClient\Debug\TCPClient.pdb
?????文件???????4780??2015-08-17?12:03??TCPChatRoom\TCPClient\TCPClient\Debug\TCPClient.Build.CppClean.log
?????文件???????1567??2015-08-17?14:24??TCPChatRoom\TCPClient\TCPClient\Debug\TCPClient.log
?????文件???????2842??2015-08-17?14:24??TCPChatRoom\TCPClient\TCPClient\NSocket.cpp
?????文件????????403??2015-08-17?10:21??TCPChatRoom\TCPClient\TCPClient\NSocket.h
?????文件???????3991??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\ReadMe.txt
?????文件??????67777??2012-01-11?01:22??TCPChatRoom\TCPClient\TCPClient\res\TCPClient.ico
?????文件????????674??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\res\TCPClient.rc2
?????文件???????2062??2015-07-17?11:47??TCPChatRoom\TCPClient\TCPClient\resource.h
?????文件????????142??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\stdafx.cpp
?????文件???????1629??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\stdafx.h
?????文件????????234??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\targetver.h
?????文件??????91492??2015-08-17?10:12??TCPChatRoom\TCPClient\TCPClient\TCPClient.aps
?????文件???????2501??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\TCPClient.cpp
?????文件????????460??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient\TCPClient.h
?????文件??????10998??2015-07-17?14:22??TCPChatRoom\TCPClient\TCPClient\TCPClient.rc
?????文件???????6318??2015-08-17?12:03??TCPChatRoom\TCPClient\TCPClient\TCPClient.vcxproj
?????文件???????2246??2015-07-15?17:15??TCPChatRoom\TCPClient\TCPClient\TCPClient.vcxproj.filters
?????文件????????164??2015-07-15?16:59??TCPChatRoom\TCPClient\TCPClient\TCPClient.vcxproj.user
?????文件???????7966??2015-08-17?10:49??TCPChatRoom\TCPClient\TCPClient\TCPClientDlg.cpp
?????文件???????1138??2015-08-17?10:49??TCPChatRoom\TCPClient\TCPClient\TCPClientDlg.h
?????文件????????894??2015-07-15?16:14??TCPChatRoom\TCPClient\TCPClient.sln
????..A..H.?????29696??2015-08-17?12:06??TCPChatRoom\TCPClient\TCPClient.v11.suo
?????文件???????1531??2015-08-14?15:07??TCPChatRoom\TCPClient.exe.lnk
?????文件?????213504??2015-08-17?14:11??TCPChatRoom\TCPServer\Debug\TCPServer.exe
?????文件????1294508??2015-08-17?14:11??TCPChatRoom\TCPServer\Debug\TCPServer.ilk
?????文件????7179264??2015-08-17?14:11??TCPChatRoom\TCPServer\Debug\TCPServer.pdb
?????文件???????6168??2015-08-17?12:01??TCPChatRoom\TCPServer\TCPServer\Debug\TCPServer.Build.CppClean.log
............此處省略84個文件信息
- 上一篇:USB HID STM32 開發資料全集
- 下一篇:MFC編程TCP通信程序
評論
共有 條評論