91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 23KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-07-03
  • 語言: 其他
  • 標簽: socket5??

資源簡介

基于Socket5的服務器端源代碼,適合初學者

資源截圖

代碼片段和文件信息

//?MySocks5.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?“MySocks5.h“
#include?“afxsock.h“


#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
//?The?one?and?only?application?object
#define?HTTP??“http://“
#define?FTP???“ftp://“
#define?MAXBUFFERSIZE??????20*1024??????//緩沖區大小

CWinApp?theApp;
using?namespace?std;

//Proxy?端口
UINT?pport=1180;
UINT?ProxyToServer(LPVOID?pParam);
UINT?UserToProxy(LPVOID?pParam);

struct?ProxySockets
{
????SOCKET??user_proxy; //本地機器到PROXY?服務機的socket
SOCKET??proxy_server; //PROXY?服務機到遠程主機的socket
BOOL????IsUser_ProxyClosed;?//?本地機器到PROXY?服務機狀態
BOOL????IsProxy_ServerClosed;?//?PROXY?服務機到遠程主機狀態
};

struct?ProxyParam
{
char?Address[256];????//?遠程主機地址
HANDLE?User_SvrOK;????//?PROXY?服務機到遠程主機的聯結狀態
ProxySockets?*pPair;????//?維護一組SOCKET的指針
int?????Port;?????????//?用來聯結遠程主機的端口
};???????????????????//這個結構用來PROXY?SERVER與遠程主機的信息交換.
SOCKET????listen_socket;???//用來偵聽的SOCKET。

int?StartProxyServer()??//啟動服務
{
?????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(pport);
?????listen_socket=socket(AF_INETSOCK_STREAM0);
?????if(listen_socket==INVALID_SOCKET)
?????{
printf(“\nError?in?New?a?Socket.“);WSACleanup();
return?-2;
?????}
?????if(::bind(listen_socket(sockaddr?*)&localsizeof(local))!=0)
?????{
printf(“\n?Error?in?Binding?socket.“);
WSACleanup();
return?-3;
?????}
if(::listen(listen_socket5)!=0)
{
printf(“\n?Error?in?Listen.“);
WSACleanup();?
return?-4;
}
::listen_socket=listen_socket;?
AfxBeginThread(UserToProxyNULL);???//啟動偵聽
return?1;
}
int?CloseServer()??//關閉服務
{
closesocket(listen_socket);
WSACleanup();
return?1;
}
//分析接收到的字符,得到遠程主機地址
int?ResolveInformation(?char?*?str?char?*address?int?*?port)
{
char?buf[MAXBUFFERSIZE]?command[512]?proto[128]?*p;
int?j;
sscanf(str“%s%s%s“commandbufproto);
p=strstr(bufHTTP);
//HTTP
if(p)
{
p+=strlen(HTTP);
for(int?i=0;i if(?*(p+i)==‘/‘)?break;
*(p+i)=0;
strcpy(addressp);
p=strstr(strHTTP);
//去掉遠程主機名:?
//GET?http://www.njust.edu.cn/?HTTP1.1??==?>?GET?/?HTTP1.1
for(int?j=0;j *(p+j)=‘?‘;
//缺省的?http?端口?
*port=80;??????
}
else
{
//FTP?不支持?下面的代碼可以省略.
p=strstr(bufFTP);
if(!p)?return?0;
p+=strlen(FTP);
for(int?i=0;i if(?*(p+i)==‘/‘)?break;??????//Get?The?Remote?Host
*(p+i)=0;
for(j=0;j if(*(p+j)==‘:‘)?
{
*port=atoi(p+j+1);????//Get?The?Port
*(p+j)=0;
}
else?*port=2

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????17248??2008-09-24?09:34??SOCKET5SERVER\MySocks5.aps

?????文件????????245??2003-11-28?23:21??SOCKET5SERVER\MySocks5.clw

?????文件???????9843??2003-11-29?00:28??SOCKET5SERVER\MySocks5.cpp

?????文件???????4308??2003-11-28?23:21??SOCKET5SERVER\MySocks5.dsp

?????文件????????541??2003-11-28?23:21??SOCKET5SERVER\MySocks5.dsw

?????文件????????332??2003-11-28?23:21??SOCKET5SERVER\MySocks5.h

?????文件??????66560??2008-09-24?09:34??SOCKET5SERVER\MySocks5.ncb

?????文件??????49664??2008-09-24?09:34??SOCKET5SERVER\MySocks5.opt

?????文件???????2229??2008-09-24?09:34??SOCKET5SERVER\MySocks5.plg

?????文件???????1457??2003-11-28?23:21??SOCKET5SERVER\MySocks5.rc

?????文件???????1619??2003-11-28?23:21??SOCKET5SERVER\ReadMe.txt

?????文件????????449??2003-11-28?23:21??SOCKET5SERVER\Resource.h

?????文件????????295??2003-11-28?23:21??SOCKET5SERVER\StdAfx.cpp

?????文件???????1106??2003-11-28?23:21??SOCKET5SERVER\StdAfx.h

?????目錄??????????0??2008-09-24?09:41??SOCKET5SERVER

-----------?---------??----------?-----??----

???????????????155896????????????????????15


評論

共有 條評論