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

  • 大小: 13KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-15
  • 語言: C/C++
  • 標簽: vc++??UDP??P2P??P2PServer??

資源簡介

在網上找了很久的資源,使用VC++實現的UDP穿透NAT的原理,里面包括p2pclient和p2pserver.經過本人的測試,可以當做很好的學習資料.注意:編譯p2pserver的時候,在125行 UserList::iterator removeiterator = NULL;和136行 if(removeiterator != NULL)有問題,將這段代碼注釋掉即可。

資源截圖

代碼片段和文件信息

/*?P2P?程序客戶端
?*?
?*?文件名:P2PClient.c
??*?Download:http://www.NewXing.com
?*?日期:2004-5-21
?*
?*?作者:shootingstars(zhouhuis22@sina.com)
?*
?*/

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

#include?“windows.h“
#include?“..\proto.h“
#include?“..\Exception.h“
#include?
using?namespace?std;

UserList?ClientList;



#define?COMMANDMAXC?256
#define?MAXRETRY????5

SOCKET?PrimaryUDP;
char?UserName[10];
char?ServerIP[20];

bool?RecvedACK;

void?InitWinSock()
{
WSADATA?wsaData;

if?(WSAStartup(MAKEWORD(2?2)?&wsaData)?!=?0)
{
printf(“Windows?sockets?2.2?startup“);
throw?Exception(““);
}
else{
printf(“Using?%s?(Status:?%s)\n“
wsaData.szDescription?wsaData.szSystemStatus);
printf(“with?API?versions?%d.%d?to?%d.%d\n\n“
LOBYTE(wsaData.wVersion)?HIBYTE(wsaData.wVersion)
LOBYTE(wsaData.wHighVersion)?HIBYTE(wsaData.wHighVersion));
}
}

SOCKET?mksock(int?type)
{
SOCKET?sock?=?socket(AF_INET?type?0);
if?(sock? {
????????printf(“create?socket?error“);
throw?Exception(““);
}
return?sock;
}

stUserListNode?GetUser(char?*username)
{
for(UserList::iterator?UserIterator=ClientList.begin();
UserIterator!=ClientList.end();
++UserIterator)
{
if(?strcmp(?((*UserIterator)->userName)?username)?==?0?)
return?*(*UserIterator);
}
throw?Exception(“not?find?this?user“);
}

void?BindSock(SOCKET?sock)
{
sockaddr_in?sin;
sin.sin_addr.S_un.S_addr?=?INADDR_ANY;
sin.sin_family?=?AF_INET;
sin.sin_port?=?0;

if?(bind(sock?(struct?sockaddr*)&sin?sizeof(sin))? throw?Exception(“bind?error“);
}

void?ConnectToServer(SOCKET?sockchar?*username?char?*serverip)
{
sockaddr_in?remote;
remote.sin_addr.S_un.S_addr?=?inet_addr(serverip);
remote.sin_family?=?AF_INET;
remote.sin_port?=?htons(SERVER_PORT);

stMessage?sendbuf;
sendbuf.iMessageType?=?LOGIN;
strncpy(sendbuf.message.loginmember.userName?username?10);

sendto(sock?(const?char*)&sendbuf?sizeof(sendbuf)?0?(const?sockaddr*)&remotesizeof(remote));

int?usercount;
int?fromlen?=?sizeof(remote);
int?iread?=?recvfrom(sock?(char?*)&usercount?sizeof(int)?0?(sockaddr?*)&remote?&fromlen);
if(iread<=0)
{
throw?Exception(“Login?error\n“);
}

//?登錄到服務端后,接收服務端發來的已經登錄的用戶的信息
cout<<“Have?“< for(int?i?=?0;i {
stUserListNode?*node?=?new?stUserListNode;
recvfrom(sock?(char*)node?sizeof(stUserListNode)?0?(sockaddr?*)&remote?&fromlen);
ClientList.push_back(node);
cout<<“Username:“<userName< in_addr?tmp;
tmp.S_un.S_addr?=?htonl(node->ip);
cout<<“UserIP:“< cout<<“UserPort:“<port< cout<<““< }
}

void?OutputUsage()
{
cout<<“You?can?input?you?command:\n“
<<“Command?Type:\“send\“\“exit\“\“getu\“\n“
<<“Example?:?send?Username?Message\n“
<<“??????????exit\n“
<<“??????????getu\n“
<}

/

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

?????文件???????8736??2013-12-02?04:35??www.NewXing.com\UDP穿越NAT.TXT

?????文件????????530??2013-12-02?04:35??www.NewXing.com\Exception.h

?????文件???????1757??2013-12-02?04:35??www.NewXing.com\proto.h

?????文件???????9874??2013-12-02?04:35??www.NewXing.com\P2PClient\P2PClient.cpp

?????文件???????5396??2013-12-02?04:35??www.NewXing.com\P2PServer\P2PServer.cpp

????.......??????4324??2004-05-21?22:55??www.NewXing.com\P2PClient\P2PClient.dsp

????.......??????4320??2004-05-21?22:55??www.NewXing.com\P2PServer\P2PServer.dsp

????.......???????541??2004-05-21?21:55??www.NewXing.com\P2PClient\P2PClient.dsw

????.......???????541??2004-05-21?21:51??www.NewXing.com\P2PServer\P2PServer.dsw

????.......???????907??2004-05-22?08:47??www.NewXing.com\P2PClient\P2PClient.sln

????.......???????907??2004-05-22?08:47??www.NewXing.com\P2PServer\P2PServer.sln

????..A..H.??????8192??2004-05-22?09:24??www.NewXing.com\P2PClient\P2PClient.suo

????..A..H.??????8192??2004-05-22?09:24??www.NewXing.com\P2PServer\P2PServer.suo

????.......??????4361??2004-05-22?08:47??www.NewXing.com\P2PClient\P2PClient.vcproj

????.......??????4305??2004-05-22?08:47??www.NewXing.com\P2PServer\P2PServer.vcproj

?????目錄??????????0??2009-08-02?09:25??www.NewXing.com\P2PClient

?????目錄??????????0??2009-08-02?09:24??www.NewXing.com\P2PServer

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

????????????????62883????????????????????17


評論

共有 條評論