欢迎来到天天文库
浏览记录
ID:58702491
大小:117.50 KB
页数:39页
时间:2020-10-03
《文件传输协议简单设计和实现c语言.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文件传输协议的简单设计与实现(c语言)文件传输协议的简单设计与实现(c语言,VC6.0)使用Socket进行Client/Server程序设计的一般连接过程是这样的:Server端Listen(监听)某个端口是否有连接请求,Client端向Server端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client端都可以通过Send,Write等方法与对方通信。 对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤: (1)创建Socket; (2)打开连接到S
2、ocket的输入/出流; (3)按照一定的协议对Socket进行读/写操作; (4)关闭Socket. 第三步是程序员用来调用Socket和实现程序功能的关键步骤,其他三步在各种程序中基本相同。/****************client.c****************/#include#include#include#pragmacomment(lib,"ws2_32.lib")#defineDEFAULT_PORT2302#defineDEFAULT_BUFFER2048#defineDEFAULT_ME
3、SSAGE"Thisisatestoftheemergencybroadcastingsystem"charszServerip[128],//ServertoconnecttoszMessage[1024];//MessagetosendtoseverintiPort=DEFAULT_PORT;//Portonservertoconnectto//DWORDdwCount=DEFAULT_COUNT;//NumberoftimestosendmessageBOOLbSendOnly=FALSE;//Senddataonly;don'treceiveintdirfun();int
4、getfun();intputfun();intpwdfun();intcdfun();intmdfun();intdelfun();intusafun();voidusage(){printf("usage:client[-p:x][-s:IP][-n:x][-o]");printf("-p:xRemoteporttosendto");printf("-s:IPServer'sIPaddressorhostname");printf("-n:xNumberoftimestosendmessage");printf("-oSendmessagesonly;don
5、'treceive");ExitProcess(1);}voidValidateArgs(intargc,char**argv){inti;for(i=1;i6、7、(argv[i][0]=='/')){switch(tolower(argv[i][1])){case'p'://Remoteportif(strlen(argv[i])>3)iPort=atoi(&argv[i][3]);break;case's'://Serverif(strlen(argv[i])>3)strcpy(szServerip,&argv[i8、][3]);break;case'n'://Numberoftimestosendmessageif(strlen(argv[i])>3)//dwCount=atol(&argv[i][3]);break;case'o'://Onlysendmessage;don'treceivebSendOnly=TRUE;break;default:usage();break;}}}}intmain(intargc,char**argv){WSADATAwsd;SOCKETsClient;charszBuffer[DEFAULT_BUFFER];intret;//unsignedinti;//9、intj;structsockaddr_inserver;structhostent*host=NULL;charchoice[5],choice2[40];//ParsethecommandlineandloadWinsock//argv[1]="-s:127.0.0.1";strcpy(szServerip,&argv[1][3]);//ValidateArgs(argc,argv);if(WSAStartup(MAKEWORD(2,2),&wsd)!=0){pr
6、
7、(argv[i][0]=='/')){switch(tolower(argv[i][1])){case'p'://Remoteportif(strlen(argv[i])>3)iPort=atoi(&argv[i][3]);break;case's'://Serverif(strlen(argv[i])>3)strcpy(szServerip,&argv[i
8、][3]);break;case'n'://Numberoftimestosendmessageif(strlen(argv[i])>3)//dwCount=atol(&argv[i][3]);break;case'o'://Onlysendmessage;don'treceivebSendOnly=TRUE;break;default:usage();break;}}}}intmain(intargc,char**argv){WSADATAwsd;SOCKETsClient;charszBuffer[DEFAULT_BUFFER];intret;//unsignedinti;//
9、intj;structsockaddr_inserver;structhostent*host=NULL;charchoice[5],choice2[40];//ParsethecommandlineandloadWinsock//argv[1]="-s:127.0.0.1";strcpy(szServerip,&argv[1][3]);//ValidateArgs(argc,argv);if(WSAStartup(MAKEWORD(2,2),&wsd)!=0){pr
此文档下载收益归作者所有