www.pudn.com > UDP文件传输.rar > canal.cpp


// canal.cpp : Defines the entry point for the console application. 
// 
#include "ZsP2p.h" 
#include "math.h" 
#include "stdlib.h" 
#include "libzsp2p.h" 
#include "uni_sock32.h" 
CZsP2p myEvent; 
 
 
#define _RECVER 1 
 
int main(int argc, char* argv[]) 
{ 
	////////////////////////// 
	HP2P p2p; 
	UNI_WORD wPort; 
	char recvname[512]="recver"; 
	char username[512]; 
#ifdef _RECVER 
	//canal 192.168.12.40 recvname 3018 
	// 1		2			3		4 
	if(argc>=2) 
	{ 
		wPort=3018; 
		strcpy(username,recvname); 
		if(argc>=3) 
		{ 
			sprintf(username,"recv_%s",argv[2]); 
			if(argc>=4) 
			{ 
				wPort=atoi(argv[3]); 
			} 
		} 
		if(p2p=P2p_Open(&myEvent,username,HSocket::InetAddr(argv[1]),4096,wPort)) 
		{ 
			P2p_Close(p2p); 
		} 
	} 
#else 
	//canal 192.168.12.40 filename recvname sendname 2622 
	//1		2				3		4			5		6 
	UNI_DWORD dwFileSize; 
	UNI_OFFSET fileSize; 
	char *pname,*p; 
	if(argc>2) 
	{ 
		HFile file; 
		file.OpenForRead(argv[2]); 
		file.GetFileSize(fileSize); 
		file.Close(); 
		dwFileSize=(UNI_DWORD)fileSize; 
		wPort=2622; 
		strcpy(username,"sender"); 
		if(argc>=4) 
		{ 
			//recvname=argv[3]; 
			sprintf(recvname,"recv_%s",argv[3]); 
			if(argc>=5) 
			{ 
				sprintf(username,"send_%s",argv[4]); 
				if(argc>=6) 
				{ 
					wPort=atoi(argv[5]); 
				} 
			} 
		} 
		pname=argv[2]; 
		while(p=strstr(pname,"\\")) 
		{ 
			pname=p+1; 
		} 
		if(p2p=P2p_Open(&myEvent,username,HSocket::InetAddr(argv[1]),4096,wPort)) 
		{ 
			if(P2p_StartSend(p2p,1,pname,dwFileSize,recvname,argv[2])) 
			{ 
				printf("P2p_StartSend success!\n"); 
			} 
			else 
				printf("P2p_StartSend failed!\n"); 
			P2p_Close(p2p); 
		} 
		else 
		{ 
			printf("P2p_Open failed!\n"); 
		} 
 
	} 
#endif 
	return 0; 
}