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

  • 大小: 19KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-09
  • 語言: C/C++
  • 標簽: 端口映射??

資源簡介

c++實現的高效率端口映射程序,對于學習winsock編程很有幫助,用vc6.0構建的工程,直接導入即可

資源截圖

代碼片段和文件信息


/*
PortTransfer_三種模式。
(1)?PortTransfer?Port?Dest_IP?Port
在運行本程序的計算機上監聽Port端口,并將所有連接請求轉到Dest_IP的Port去
(2)?PortTransfer?ctrlIP?ctrlPort?Dest_IP?Port
和模式3配合用,程序將先主動連接ctrlIP:ctrlPort之后所有在模式3的ServerPort端口的請求轉到Dest_IP:Port去
(3)?PortTransfer?ctrlPort?ServerPort
在執行模式2前先執行,將監聽ctrlPort和ServerPort?端口ctrlPort供模式2使用,ServerPort提供服務.
模式1適合在網關上運行,將內網IP的端口映射到網關上,
如:PortTransfer?88?192.168.0.110?80
那么網關將開啟88端口,所有在88端口的請求將轉到內網的192.168.0.110的80端口
模式2和模式3聯合使用可以將內網的IP和端口映射到指定的IP和端口上,
一般在公網IP(假設61.1.1.1)上執行模式3,如:PortTransfer?99?80?80是映射過來的端口
內網用戶執行模式2如:PortTransfer?61.1.1.1?99?127.0.0.1?80,
那么程序在內網將先連接61.1.1.1:99建立個連接,并等待接收命令。
之后當61.1.1.1的80端口有請求,將通過99端口命令內網機子和公網機子建立條新的數據連接,
并將請求通過新建的連接將請求轉發到內網機.
*/

#include?“stdafx.h“

#include?

#include?“stack.h“
//#include?“stack.cpp“?//模板類編譯時未實例化
#include?“transferparam.h“
//#include?“transferparam.cpp“

#include?“portmapping.h“

#pragma?comment(lib?“ws2_32.lib“)



//int?nTimes?=?0;
int?DataSend(SOCKET?s?char?*DataBuf?int?DataLen)//將DataBuf中的DataLen個字節發到s去
{
int?nBytesLeft?=?DataLen;
int?nBytesSent?=?0;
int?ret;
//set?socket?to?blocking?mode
int?iMode?=?0;
ioctlsocket(s?FIONBIO?(u_long?FAR*)?&iMode);
while(nBytesLeft?>?0)
{
ret?=?send(s?DataBuf?+?nBytesSent?nBytesLeft?0);
if(ret?<=?0)
break;
nBytesSent?+=?ret;
nBytesLeft?-=?ret;
}
return?nBytesSent;
}

DWORD?WINAPI?TransmitData(LPVOID?lParam)//在兩個SOCKET中進行數據轉發
{
SOCKINFO?socks?=?*((SOCKINFO*)lParam);
SOCKET?ClientSock?=?socks.ClientSock;
SOCKET?ServerSock?=?socks.ServerSock;
char?RecvBuf[MAXBUFSIZE]?=?{0};
fd_set?Fd_Read;
int?ret?nRecv;
while(1)
{
FD_ZERO(&Fd_Read);
FD_SET(ClientSock?&Fd_Read);
FD_SET(ServerSock?&Fd_Read);
ret?=?select(0?&Fd_Read?NULL?NULL?NULL);
if(ret?<=?0)
goto?error;
if(FD_ISSET(ClientSock?&Fd_Read))
{
nRecv?=?recv(ClientSock?RecvBuf?sizeof(RecvBuf)?0);
if(nRecv?<=?0)
goto?error;
ret?=?DataSend(ServerSock?RecvBuf?nRecv);
if(ret?==?0?||?ret?!=?nRecv)
goto?error;
}
if(FD_ISSET(ServerSock?&Fd_Read))
{
nRecv?=?recv(ServerSock?RecvBuf?sizeof(RecvBuf)?0);
if(nRecv?<=?0)
goto?error;
ret?=?DataSend(ClientSock?RecvBuf?nRecv);


if(ret?==?0?||?ret?!=?nRecv)
goto?error;
}
}
error:
closesocket(ClientSock);
closesocket(ServerSock);
return?0;
}

SOCKET?ConnectHost(DWORD?dwIP?WORD?wPort)//連接指定IP和端口
{
SOCKET?sockid;
if?((sockid?=?socket(AF_INETSOCK_STREAM0))?==?INVALID_SOCKET)
{
DumpSocketError(WSAGetLastError());
return?0;
}
struct?sockaddr_in?srv_addr;
srv_addr.sin_family?=?AF_INET;
srv_addr.sin_addr.S_un.S_addr?=?dwIP;
srv_addr.sin_port?=?htons(wPort);
if?(connect(sockid(struct?sockaddr*)&srv_addrsizeof(struct?sockaddr_in))?==?SOCKET_ERROR)
{
DumpSocketError(WSAGetLastError());
goto?error;
}
return?sockid;

error:
closesocket(sockid);
return?0;
}

SOCKET?ConnectHost(char?*szIP?W

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

?????文件??????19023??2012-12-13?18:20??portmapping\portmapping.cpp

?????文件???????4922??2012-11-30?15:15??portmapping\portmapping.dsp

?????文件????????545??2012-11-30?15:11??portmapping\portmapping.dsw

?????文件???????1034??2012-12-10?14:28??portmapping\portmapping.h

?????文件??????74752??2013-07-07?01:23??portmapping\portmapping.ncb

?????文件??????55808??2013-07-07?01:23??portmapping\portmapping.opt

?????文件???????1828??2013-07-06?11:37??portmapping\portmapping.plg

?????文件???????1238??2012-11-30?15:11??portmapping\ReadMe.txt

?????文件????????521??2012-12-10?00:39??portmapping\stack.cpp

?????文件????????295??2012-12-13?00:02??portmapping\stack.h

?????文件????????298??2012-11-30?15:11??portmapping\StdAfx.cpp

?????文件????????769??2012-11-30?15:11??portmapping\StdAfx.h

?????文件????????543??2012-12-10?00:38??portmapping\transferparam.cpp

?????文件????????343??2012-12-14?17:27??portmapping\transferparam.h

?????目錄??????????0??2013-07-26?07:25??portmapping\Debug

?????目錄??????????0??2013-07-26?07:25??portmapping\Release

?????目錄??????????0??2013-07-26?07:25??portmapping

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

???????????????161919????????????????????17


評論

共有 條評論