91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

1.采用重疊I/O方式實(shí)現(xiàn)的socket網(wǎng)絡(luò)編程,異步非阻塞方式,代碼效率比阻塞式的socket編程方式高。2.實(shí)現(xiàn)了TCP server方式,只用于服務(wù)端,可以支持多客戶端。3.可以使用在各種場合用于監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)。4.代碼封裝成庫形式,非常方便移植。5.本程序使用到了多線程技術(shù),互斥同步線程技術(shù),同時支持多通道連接技術(shù),非常經(jīng)典,程序注釋完整,思路清晰。

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“eventsockmulti.h“
#include?


CEventSockMulti::CEventSockMulti()
{
m_bTcpServRun?=?0;
m_bTcpClientRun?=?0;
m_bUdpServRun?=?0;
m_bUdpClientRun?=?0;
m_bEndThread?=?0;
m_bRecvData?=?0;
m_bSendData?=?0;
m_bCallThread?=?0;
m_Thread?=?NULL;
m_Thread2?=?NULL;
p_Owner?=?NULL;
memset(m_SendBuf0sizeof(m_SendBuf));
memset(m_RecvBuf0sizeof(m_RecvBuf));
memset(m_EventArray0sizeof(m_EventArray));
memset(m_sockFlag0sizeof(m_sockFlag));
m_LocalIpAddr?=?_T(“127.0.0.1“);
m_RemoteIpAddr?=?_T(“127.0.0.1“);
m_LocalPort?=?8000;
m_RemotePort?=?8000;
m_dwEventTotal?=?0;
m_dwSocketTotal?=?0;
m_hMutex1?=?NULL;
m_sock?=?0;
m_Srvsock?=?0;
}

CEventSockMulti::~CEventSockMulti()
{

}

UINT?CEventSockMulti::TcpServThread(LPVOID?pParam)
{??
DWORD?recvedLength?=?0;????????//已經(jīng)接收到的字節(jié)數(shù)
DWORD?sentLength?=?0; //已經(jīng)發(fā)送的字節(jié)數(shù)
DWORD?dwWaitResult?=?0;
DWORD?Flags?=?0;
int?SockChannel?=?0;????????????//表示套接字對應(yīng)鏈路的通道號。
//獲取CEventSockMulti對象指針。
CEventSockMulti?*pThread?=?(CEventSockMulti*)pParam;

//初始化WSA??
????WORD?sockVersion?=?MAKEWORD(22);??
????WSADATA?wsaData;??
????if(?WSAStartup(sockVersion?&wsaData)?!=?0?)????//加載套接字版本
????{??
AfxMessageBox(“l(fā)oad?tcp?server?socket?error?!“);??
????????return?0;??
????}
AfxMessageBox(“l(fā)oad?tcp?server?socket?successfully!“);??

//創(chuàng)建套接字??
//SOCKET?TcpSrvSocket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
pThread->m_sockarr[0]?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
if(pThread->m_sockarr[0]?==?INVALID_SOCKET)??
????{??
????????AfxMessageBox(“create?tcp?server?socket?error?!“);??
????????return?0;??
????}?
pThread->m_Srvsock?=?pThread->m_sockarr[0]; //傳遞套接字給主線程,用于關(guān)閉套接字。
m_sockFlag[0]?=?1;??
AfxMessageBox(“create?tcp?server?socket?successfully?!“);??

//綁定套接字
sockaddr_in?TcpSrvAddr;
memset(?&TcpSrvAddr0sizeof(TcpSrvAddr)?);
TcpSrvAddr.sin_addr.S_un.S_addr?=?/*htonl(INADDR_ANY);*/inet_addr(pThread->m_LocalIpAddr);
TcpSrvAddr.sin_family?=?AF_INET;
TcpSrvAddr.sin_port?=?htons(pThread->m_LocalPort);
if(?bind(pThread->m_sockarr[0](SOCKADDR*)&TcpSrvAddrsizeof(TcpSrvAddr))?==?SOCKET_ERROR?)
{
AfxMessageBox(“bind?tcp?server?socket?error?!“);??
????????return?0;??
}
AfxMessageBox(“bind?tcp?server?socket?successfully.“);

//監(jiān)聽套接字
if(?listen(pThread->m_sockarr[0]5)?==?SOCKET_ERROR?)
{
AfxMessageBox(“l(fā)isten?tcp?server?socket?error?!“);??
????????return?0;??
}
AfxMessageBox(“l(fā)isten?tcp?server?socket?successfully.“);

//服務(wù)端開始通信
//SOCKET?CommSocket;
sockaddr_in?RemoteAddr;
memset(?&RemoteAddr0sizeof(RemoteAddr)?);
int?nAddrlen?=?sizeof(RemoteAddr);?

/*
**pThread->m_EventArray[0]對應(yīng)關(guān)閉進(jìn)程句柄,放在主線程初始化部分。
*/
//pThread->m_dwEventTotal?=?0;
//pThread->m_EventArray[/*pThread->m_dwEventTotal*/1]?=?WSACreateEvent(); //創(chuàng)建一個事件句柄用于關(guān)閉線程。
pThread->m_dwEventTotal?=?0;
pThread->m_dwSocketTotal?=?0;

/*
**創(chuàng)建互斥對象,使其一開始就具有信號狀態(tài)。
*/
pThread->m

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????22407??2019-05-07?08:10??MultiMonitor\Debug\eventSockMulti.obj

?????文件?????118893??2019-05-07?08:10??MultiMonitor\Debug\MultiMonitor.exe

?????文件?????284124??2019-05-07?08:10??MultiMonitor\Debug\MultiMonitor.ilk

?????文件??????19051??2019-05-06?20:10??MultiMonitor\Debug\MultiMonitor.obj

?????文件????5497828??2019-05-06?20:10??MultiMonitor\Debug\MultiMonitor.pch

?????文件?????427008??2019-05-07?08:10??MultiMonitor\Debug\MultiMonitor.pdb

?????文件???????3180??2019-05-06?20:10??MultiMonitor\Debug\MultiMonitor.res

?????文件??????44064??2019-05-06?20:56??MultiMonitor\Debug\MultiMonitorDlg.obj

?????文件?????105941??2019-05-06?20:10??MultiMonitor\Debug\StdAfx.obj

?????文件?????214016??2019-05-07?08:10??MultiMonitor\Debug\vc60.idb

?????文件?????372736??2019-05-07?08:10??MultiMonitor\Debug\vc60.pdb

?????文件??????13132??2019-05-06?13:54??MultiMonitor\eventSockMulti?_backup.cpp

?????文件??????15074??2019-05-07?08:10??MultiMonitor\eventSockMulti.cpp

?????文件???????2132??2019-05-06?20:09??MultiMonitor\eventSockMulti.h

?????文件??????16384??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.IAB

?????文件????????488??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.IAD

?????文件???????4096??2019-05-04?15:52??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.IMB

?????文件????????368??2019-05-04?15:52??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.IMD

?????文件?????????48??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.PFI

?????文件????????776??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.PO

?????文件???????4256??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.PR

?????文件??????24800??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.PRI

?????文件??????24764??2019-05-06?15:06??MultiMonitor\MultiMonitor-SI\MultiMonitor-SI.PS

?????文件??????36760??2019-05-05?09:29??MultiMonitor\MultiMonitor.aps

?????文件???????1828??2019-05-07?08:22??MultiMonitor\MultiMonitor.clw

?????文件???????1941??2019-05-04?08:30??MultiMonitor\MultiMonitor.cpp

?????文件???????4407??2019-05-04?08:34??MultiMonitor\MultiMonitor.dsp

?????文件????????547??2019-05-04?08:30??MultiMonitor\MultiMonitor.dsw

?????文件???????1390??2019-05-04?08:30??MultiMonitor\MultiMonitor.h

?????文件??????74752??2019-05-07?08:24??MultiMonitor\MultiMonitor.ncb

............此處省略18個文件信息

評論

共有 條評論

相關(guān)資源