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

📄 server.cpp

📁 该代码是将MSDN中的httpsvr MFC代码移植到STL。含有VC完整应用程序代码。
💻 CPP
字号:
// Server.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "ServerSocket.h"
#include "ServerSocketHandler.h"

#include <locale>
using namespace std;


////////////////////////////////////////////////////////////////////////////////////
// SocketHandlerImpl
// 
// Purpose:		


class SocketHandlerImpl :
	public SocketHandler
{
	long	i;
public:

	SocketHandlerImpl () : 
		SocketHandler()
	{
		i = -1;
	}


	virtual ~SocketHandlerImpl ()
	{
		SocketHandler::release();
	}

	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


class CreateSocketHandlerImpl :
	public CreateSocketHandler
{
	long	i;
public:

	CreateSocketHandlerImpl () : 
		CreateSocketHandler()
	{
		i = -1;
	}


	virtual ~CreateSocketHandlerImpl ()
	{}

	// responsible for create a connection
	SocketHandler * createHandler () 
	{
		return (SocketHandler *) new SocketHandlerImpl();
	}

};


char testReq[] =	"GET /menu.html HTTP/1.0\r\n"
					"Host: www.wrox.com\r\n"
					"User-Agent: Lynx/2.7\r\n";


#include "HttpServer.h"
#include "HttpRequestProcess.h"
#include <conio.h>


int main(int argc, char* argv[])
{
	// setup mem check
	#if defined(_DEBUG)
	_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
	#endif

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

	// set server links
	HttpResponse::setServer( server );

	while ( true )
	{
		if ( _kbhit() )
			break;

		Sleep(100);
	}



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

	// set server links
	HttpResponse::setServer( server );

	// test request processing
	long length = strlen(testReq);

	HttpRequestProcess processReq;
	if ( processReq.process( testReq, length ) )
	{

		string text = "";
		processReq.getString(text);

		long k=0;
		k++;
	}
	*/

	/*

	// init startup
	WSADATA WSAData;
	WSAStartup( MAKEWORD(2,0), &WSAData );

	ServerSocket server(10);
	if ( !server.open( 80 ) )
		return -1;

	// use server handler
	CreateSocketHandlerImpl createSocket;
	ServerSocketHandler	handler(server,(CreateSocketHandler &)createSocket);

	handler.create();

	// handler handles reads so now
	// do nothing
	while ( true )
	{
		Sleep(1000);
	}
	*/


	




	return 0;
}

⌨️ 快捷键说明

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