#include "stdafx.h"
#include "natGtpu.h"
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <afxwin.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
using namespace std;
SOCKET gListen_Socket; //监听的SOCKET,全局
int StartServer() //启动服务
{
WSADATA wsaData;
sockaddr_in local;
SOCKET listen_socket;
if(::WSAStartup(0x202,&wsaData)!=0)
{
printf("\nError in Startup session.\n");
WSACleanup();
return -1;
}
local.sin_family=AF_INET;
local.sin_addr.s_addr=INADDR_ANY;
local.sin_port=htons(PROXYPORT);
if(INVALID_SOCKET == (listen_socket=socket(AF_INET,SOCK_STREAM,0)))
{
printf("\nError in New a Socket.");
WSACleanup();
return -2;
}
if(::bind(listen_socket,(sockaddr *)&local,sizeof(local)) !=0 )
{
printf("\n Error in Binding socket.");
WSACleanup();
return -3;
};
if(::listen(listen_socket,5) !=0 )
{
printf("\n Error in Listen.");
WSACleanup();
return -4;
}
gListen_Socket=listen_socket;
AfxBeginThread(UserToProxyThread,NULL); //启动侦听
return 1;
}