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

📄 acdcommandlistener.cpp

📁 一个c++实现的acd的例子。 ----ACDCommandListener.cpp ---ACDCommandListenerThread.cpp ---ACDConfig.cpp ---a
💻 CPP
字号:
 /*=============================================================

 
 Function:
		


 Author: Leon Wang <wlywly@sina.com  giga2@tom.com>
==============================================================*/
// ACDCommandListener.cpp: implementation of the ACDCommandListener class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ACDCommandListener.h"


#include "Socket/ServerSocket.h"
#include "Socket/ServerSocketHandler.h"
#include <locale>

#include "socket/HttpServer.h"
#include "socket/HttpRequestProcess.h"

using namespace std;

//##ModelId=424BB6470334
class SocketHandlerImpl :
	public SocketHandler
{
	//##ModelId=424BB6470344
	long	i;
public:

	//##ModelId=424BB6470353
	SocketHandlerImpl () : 
		SocketHandler()
	{
		i = -1;
	}


	//##ModelId=424BB6470354
	virtual ~SocketHandlerImpl ()
	{
		SocketHandler::release();
	}

	//##ModelId=424BB6470356
	long run ()
	{
		Socket & sock = getSocket();


		while ( true )
		{

			char buffer[1024];
			long noRead = sock.recieve( buffer, 1024 );

			buffer[noRead] = '\0';


		}
	}
};
////////////////////////////////////////////////////////////////////////////////////
// CreateSocketHandlerImpl
// 
// Purpose:		create connection socket is an abstract class 
//				used only to create connect sockets or their derived classes. 
//				you must implement you own


//##ModelId=424BB6470363
class CreateSocketHandlerImpl :
	public CreateSocketHandler
{
	//##ModelId=424BB6470365
	long	i;
public:

	//##ModelId=424BB6470372
	CreateSocketHandlerImpl () : 
		CreateSocketHandler()
	{
		i = -1;
	}


	//##ModelId=424BB6470373
	virtual ~CreateSocketHandlerImpl ()
	{}

	// responsible for create a connection
	//##ModelId=424BB6470375
	SocketHandler * createHandler () 
	{
		return (SocketHandler *) new SocketHandlerImpl();
	}

};



//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//##ModelId=424BB64702F6
ACDCommandListener::ACDCommandListener()
{
    listening = true;
    listenSocket = NULL;
}

//##ModelId=424BB64702F7
ACDCommandListener::~ACDCommandListener()
{

}
//##ModelId=424BB64702D8
unsigned __stdcall  ACDCommandListener::_RUN(void *p)
{
	ACDCommandListener * pThis = (ACDCommandListener*)p;
	pThis->RUN();
	delete pThis;
	return 0;	
}

//##ModelId=42198D180336
// start 7001 server port for HTTP request 
//##ModelId=424BB64702D7
void ACDCommandListener::RUN(){

	#if defined(_DEBUG)
	_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
	#endif
	HttpServer server(10,port);

	server.setACDX(acdx);// set acdx obj

	server.create( string("hubbardd"), string("d:\\Projects\\HtmlMenu\\Menus") );


	HttpResponse::setServer( server );

	

	while ( true )
	{
	//	if ( _kbhit() )// check keybord input
	//		break;

		Sleep(100);
	}

/*
     try {
            listenSocket = new ServerSocket(port);
        } catch (IOException ioe) {
            System.out.println("Can't open listen socket on port " + port + ":" + ioe);
            System.exit(-1);
        }

        while (listening) {
            try {
                new Thread(new ACDCommandListenerThread(listenSocket.accept(), redirLocation)).start();
            } catch (IOException ioe) {
                if (listening)
                    ioe.printStackTrace();
                // else ignore, exception is normal on shutdown to terminate accept()
            }
        }
        try {
            listenSocket.close();
        } catch (IOException ioe) {
            // ignore, we want to shut down
        }
*/
}

//##ModelId=424BB64702E8
void ACDCommandListener::init(ACDX* _acdx,int _port, CString _location)
{
        port = _port;
        redirLocation = _location;
		acdx = _acdx;
}
    /**
     * Stop the thread.
     */
//##ModelId=424BB64702F9
void ACDCommandListener::stopListening() {
        listening = FALSE;
        // wakeup accept
      // Thread.currentThread().interrupt();
}

⌨️ 快捷键说明

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