⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mypl.cpp

📁 一个通讯管理机的源代码。比较好用。推荐
💻 CPP
字号:
#include "mypl.h"void *myListen(void *p){	CMyPL * pPS= (CMyPL *)p;	pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);	pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,NULL);	sleep(5);	while(1)	{		pPS->Read();		usleep(10000); //10 milliseconds	}}CMyPL::CMyPL(int nPort,char * pszPeerAddr,char * pszHostAddr):m_iaPeer(pszPeerAddr),m_client(CInetAddress(pszHostAddr),nPort){	m_nStatus = -1;	m_nPort = nPort;}CMyPL::~CMyPL(void){}bool CMyPL::Connect(){	bool bRet = false;	//open IO port	pthread_attr_t attr;	pthread_attr_init(&attr);	pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);	m_nStatus = 0;	if (pthread_create(&m_hThread,&attr,myListen,(void *)this) == 0)		bRet = true;	else		m_nStatus = -1;	pthread_attr_destroy(&attr);	return bRet;}bool CMyPL::Write(BYTE *pData,WORD wSize){	bool bRet = false;	if ((Status()==0) && m_server.Write(pData,wSize,m_iaPeer,m_nPort))		bRet = true;	return bRet;}void CMyPL::Read(){	static BYTE aBuf[1024];	int nLen = m_client.Read(aBuf,1024);	if (nLen > 3)	{		timeval tv;		gettimeofday(&tv,NULL);		CDataNode* pDN = new CDataNode(tv,aBuf,nLen);		DWORD dwAddr = 0;		m_pool.AddRecvNode(dwAddr,pDN);	}}void CMyPL::Disconnect(){	if (m_nStatus != -1)	{		m_nStatus = -1;		if (m_hThread)		{			cout << "CMyPL: " << m_hThread << endl;			pthread_cancel(m_hThread);		}	}}/*bool CMyPL::Reset(){	Disconnect();	sleep(2);	return Connect();}   */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -