toolsandutils/wintunnel/testcode/server/CTcpServer.h
changeset 0 83f4b4db085c
child 1 d4b442d23379
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolsandutils/wintunnel/testcode/server/CTcpServer.h	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,89 @@
+/**
+* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* CTcpServer
+* 
+*
+*/
+
+
+
+#ifndef __CTCPSERVER_H__
+#define __CTCPSERVER_H__
+
+
+/***************************************************************************************
+ *
+ * System Includes
+ *
+ **************************************************************************************/
+#include <winsock2.h>
+
+
+/***************************************************************************************
+ *
+ * Definitions
+ *
+ **************************************************************************************/
+#define ITS_OK					0
+#define E_SOCKETSTARTUP			1								
+#define E_SOCKETBIND			2						
+#define E_SOCKETSEND			3			
+#define E_SOCKETRECV			4							
+#define E_SOCKETCLOSE			5			
+#define E_SOCKETSHUTDOWN		6
+#define E_SENDING				7
+#define E_RECEIVING				8
+#define E_LISTENING				9
+#define	E_ACCEPT				10
+#define E_INCORRECTARG			11
+
+#define RECVBUFFSIZE	1024
+		
+
+/***************************************************************************************
+ *
+ * CTcpServer
+ *
+ **************************************************************************************/
+class CTcpServer
+{
+public:
+	CTcpServer();	
+	~CTcpServer();	
+	int StartServer( char* aLocalInterface, char* aLocalPort );	
+
+private:
+	void ProcessBuffer( char* aBuffer, int aLen );
+	bool IsBufferComplete( char* aBuffer, int aLen );
+
+	int initialise(void);
+	int disconnect(void);
+	int release(void);
+	int setArguments(char* li, char* lp);
+	int connect( SOCKET &aSocket, SOCKADDR_IN &aAddr );
+	int makeConnection(SOCKET &aLocalSocket, SOCKET &aRemoteSocket, SOCKADDR_IN &aRemoteAddr);
+	SOCKET getSocket( void );
+	SOCKADDR_IN getSockAddr( const char* aIp, const char* aPort );
+	bool isIPAdress( const char* aAddr );
+
+private:
+	SOCKET iLocal_Sock;
+	SOCKADDR_IN iLocal_Addr;
+	SOCKET iRemote_Sock;
+	SOCKADDR_IN iRemote_Addr;
+	char iPacket[RECVBUFFSIZE];
+};
+
+#endif //__CTCPSERVER_H__