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

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

資源簡介

VC++端口轉發程序源碼

資源截圖

代碼片段和文件信息

//?MPortServer.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include?
#include?
#pragma?comment(lib?“ws2_32.lib“)
#define?MAXCONN?100

int?g_nAcceptCount?=?0;

typedef?struct?_SOCKINFO
{
int?MapPort;
char?MapIp[50];
SOCKET?LisSocket;
}SOCKINFO*PSOCKINFO;

typedef?struct?_SOCKS
{
SOCKET?MapSocket;
SOCKET?LisSocket;
}SOCKS*PSOCKS;

bool?InitSocket()
{
WSADATA?wsaData;
if?(WSAStartup(MAKEWORD(22)?&wsaData))
{
printf(“ERROR:WSAStartup?Error.\r\n“);
return?false;
}
return?true;
}

bool?SendData(SOCKET?s?char?*data?int?len)
{
char?*?p?=?data;
int?i?=?0;
int?k?=?len;
int?ret?=?0;

if(len?<=?0)?return?TRUE;
while(1)
{
ret?=?send(spk0);
if(ret?==?0?||?ret?==?SOCKET_ERROR)
{
return?FALSE;
}
i?+=?ret;
p?+=?ret;
k?-=?ret;
if(i?>=?len)?break;
}
return?TRUE;
}

DWORD?WINAPI?TranslateData(LPVOID?pvParam)
{
SOCKS?*LisAndMapSocket?=?(SOCKS*)pvParam;

FD_SET?fdread;
FD_ZERO(&fdread);

FD_SET(LisAndMapSocket->LisSocket?&fdread);
FD_SET(LisAndMapSocket->MapSocket?&fdread);

char?buff[8192];
int?nRecvnSend;
while(select(0?&fdread?NULL?NULL?NULL)?!=?SOCKET_ERROR)
{
ZeroMemory(buff?sizeof(buff));
if?(FD_ISSET(LisAndMapSocket->LisSocket?&fdread))
{
nRecv?=?recv(LisAndMapSocket->LisSocket?buff?sizeof(buff)?0);
nSend?=?SendData(LisAndMapSocket->MapSocket?buff?nRecv);
if?(nRecv?==?SOCKET_ERROR?||?nSend?==?false)
{
printf(“ERROR:Translate?listen?socket?data?error.\r\n“);
break;
}
}?
else?if?(FD_ISSET(LisAndMapSocket->MapSocket?&fdread))
{
nRecv?=?recv(LisAndMapSocket->MapSocket?buff?sizeof(buff)?0);
nSend?=?SendData(LisAndMapSocket->LisSocket?buff?nRecv);
if?(nRecv?==?SOCKET_ERROR?||?nSend?==?false)
{
printf(“ERROR:Translate?map?socket?data?error.\r\n“);
break;
}
}
FD_ZERO(&fdread);
FD_SET(LisAndMapSocket->LisSocket?&fdread);
FD_SET(LisAndMapSocket->MapSocket?&fdread);
}
closesocket(LisAndMapSocket->MapSocket);
closesocket(LisAndMapSocket->LisSocket);
g_nAcceptCount--;
return?0;
}

DWORD?LisAccept(SOCKINFO?si)
{
DWORD?dwResult?=?0;
SOCKS?LisAndMapSocket; //連接成功socket和監聽socket
SOCKINFO?sockinfo?=?si;

sockaddr_in?sinmap;
sinmap.sin_family?=?AF_INET;
sinmap.sin_port?=?htons(sockinfo.MapPort);
sinmap.sin_addr.S_un.S_addr?=?inet_addr(sockinfo.MapIp);
//如果監聽socket沒有關閉,則一直accept
while(sockinfo.LisSocket?!=?INVALID_SOCKET)
{
SOCKET?mapSocket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
SOCKET?sAccept?=?accept(sockinfo.LisSocket?NULL?NULL);
if?(sAccept?==?INVALID_SOCKET)
break;
LisAndMapSocket.LisSocket?=?sAccept;
//如果客戶端連接沒有斷開則一直嘗試連接要映射的端口
do?
{
if?(connect(mapSocket?(SOCKADDR*)&sinmap?sizeof(sinmap))?==?SOCKET_ERROR)
{
printf(“ERROR:Connect?map?computer?error.\r\n“);
if?(sAccept?!=?INVALID_SOCKET)

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

?????文件???????4596??2009-02-18?07:33??MPortServer.dsp

?????文件????????530??2009-02-18?07:33??MPortServer.dsw

?????文件????????256??2009-02-18?18:30??MPortServer.plg

?????文件???????4211??2009-02-18?18:30??MPortServer.cpp

?????文件??????50176??2009-02-18?18:30??MPortServer.ncb

?????文件??????53760??2009-02-18?18:30??MPortServer.opt

?????文件???????1238??2009-02-18?07:33??ReadMe.txt

?????文件????????298??2009-02-18?07:33??StdAfx.cpp

?????文件????????667??2009-02-18?07:33??StdAfx.h

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

???????????????115732????????????????????9


評論

共有 條評論