www.pudn.com > win控制台程序(可以发送,但接受还需要完善)776.zip > RawTcp.cpp


#define DEBUG  
/* #define DEBUG_SENDIP_1*/ 
/* #define DEBUG_SENDIP_2*/ 
#define DEBUG_RECEIVEIP_1  
#define DEBUG_RECEIVEIP_2  
 
#define MAJOR_VERSION 1 
#define MINOR_VERSION 2 
#define WSA_MAKEWORD(x,y)  ((y)*256+(x)) 
 
 
#include "rawTcp.h" 
 
int main(int argc, char *argv[]) 
{ 
	WORD	wMajorVersion, wMinorVersion; 
	LPWSADATA	lpmyWSAData; 
	WORD 		VersionReqd; 
	wMajorVersion = MAJOR_VERSION; 
	wMinorVersion = MINOR_VERSION; 
	lpmyWSAData = (LPWSADATA)malloc(sizeof(WSADATA)); 
	VersionReqd = WSA_MAKEWORD(wMajorVersion,wMinorVersion); 
	int Status = WSAStartup(VersionReqd, lpmyWSAData); 
	if (Status != 0) 
	{ 
		printf("error on startup sock\n"); 
		return  -1; 
	} 
 
	extern int mssleep;	 
	int op_flag; 
	char *local_filename, *hostname; 
 
	/* check parameter info */ 
	if( argc < 4) 
	{ 
		fprintf(stderr, "usage: %s hostname op_flag(r/w) local_filename [pause_ms]\n",argv[0]); 
		WSACleanup(); 
		exit(1); 
	} 
 
	local_filename = argv[3]; 
	hostname = argv[1]; 
 
	/*** set op_flag ***/ 
	if(argv[2][0]=='r') 
  	{	/* check parameter info */ 
		op_flag=CMD_FILE_READ; 
		hostname = argv[1]; 
		local_filename = argv[3]; 
	} 
	else if(argv[2][0]=='w') 
	{	/* check parameter info */ 
		op_flag=CMD_FILE_WRITE; 
		hostname = argv[1]; 
		local_filename = argv[3]; 
 
		if( argc == 5) 
                mssleep=atoi(argv[4]);  
	} 
    else 
	{	 
		perror("Wrong in Command"); 
		WSACleanup(); 
		exit(1); 
	} 
/* 
#ifdef DEBUG 
printf("You have typed:\n %s, %s, %s, %s\n", argv[0],hostname,argv[2],local_filename);  
#endif 
*/ 
	if(op_flag == CMD_FILE_READ) 
		do_file_read_transfer(hostname, local_filename); 
	else if(op_flag == CMD_FILE_WRITE) 
		do_file_write_transfer(hostname, local_filename); 
 
	printf("All done!!!\n"); 
 
	WSACleanup(); 
	return 1; 
}