欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(c語(yǔ)言.

      時(shí)間:2019-05-12 21:03:41下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(c語(yǔ)言.》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(c語(yǔ)言.》。

      第一篇:文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(c語(yǔ)言.

      文件傳輸協(xié)議的簡(jiǎn)單設(shè)計(jì)與實(shí)現(xiàn)(c語(yǔ)言,VC6.0)使用Socket進(jìn)行Client/Server程序設(shè)計(jì)的一般連接過程是這樣的:Server端Listen(監(jiān)聽)某個(gè)端口是否有連接請(qǐng)求,Client端向Server端發(fā)出Connect(連接)請(qǐng)求,Server端向Client端發(fā)回Accept(接受)消息。一個(gè)連接就建立起來了。Server端和Client端都可以通過Send,Write等方法與對(duì)方通信。

      對(duì)于一個(gè)功能齊全的Socket,都要包含以下基本結(jié)構(gòu),其工作過程包含以下四個(gè)基本的步驟:

      (1)創(chuàng)建Socket;

      (2)打開連接到Socket的輸入/出流;

      (3)按照一定的協(xié)議對(duì)Socket進(jìn)行讀/寫操作;

      (4)關(guān)閉Socket.第三步是程序員用來調(diào)用Socket和實(shí)現(xiàn)程序功能的關(guān)鍵步驟,其他三步在各種程序中基本相同。

      /****************client.c****************/ #include #include #include #pragma comment(lib,“ws2_32.lib”)#define DEFAULT_PORT 2302 #define DEFAULT_BUFFER 2048 #define DEFAULT_MESSAGE “This is a test of the emergency broadcasting system” char szServerip[128], // Server to connect to szMessage[1024];// Message to send to sever int iPort = DEFAULT_PORT;// Port on server to connect to

      //DWORD dwCount = DEFAULT_COUNT;// Number of times to send message BOOL bSendOnly = FALSE;// Send data only;don't receive int dirfun();int getfun();int putfun();int pwdfun();int cdfun();int mdfun();int delfun();int usafun();

      void usage(){ printf(“usage: client [-p:x] [-s:IP] [-n:x] [-o]nn”);printf(“-p:x Remote port to send ton”);printf(“-s:IP Server's IP address or hostnamen”);printf(“-n:x Number of times to send messagen”);printf(“-o Send messages only;don't receiven”);ExitProcess(1);} void ValidateArgs(int argc, char **argv){ int i;

      for(i = 1;i < argc;i++){ if((argv[i][0] == '-')||(argv[i][0] == '/')){ switch(tolower(argv[i][1])){ case 'p': // Remote port

      if(strlen(argv[i])> 3)iPort = atoi(&argv[i][3]);break;case 's': // Server

      if(strlen(argv[i])> 3)strcpy(szServerip, &argv[i][3]);break;case 'n': // Number of times to send message

      if(strlen(argv[i])> 3)//dwCount = atol(&argv[i][3]);

      break;case 'o': // Only send message;don't receive

      bSendOnly = TRUE;break;default: usage();break;} } } } int main(int argc, char **argv){ WSADATA wsd;SOCKET sClient;char szBuffer[DEFAULT_BUFFER];int ret;//unsigned int i;

      //int j;

      struct sockaddr_in server;struct hostent *host = NULL;char choice[5],choice2[40];// Parse the command line and load Winsock

      //

      argv[1]=“-s:127.0.0.1”;strcpy(szServerip, &argv[1][3]);//ValidateArgs(argc, argv);if(WSAStartup(MAKEWORD(2,2), &wsd)!= 0){ printf(“Failed to load Winsock library!n”);return 1;} //strcpy(szMessage, DEFAULT_MESSAGE);

      //

      // Create the socket, and attempt to connect to the server

      //

      sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if(sClient == INVALID_SOCKET){ printf(“socket()failed: %dn”, WSAGetLastError());return 1;} server.sin_family = AF_INET;server.sin_port = htons(iPort);printf(“server.sin_port=%un”,server.sin_port);server.sin_addr.s_addr = inet_addr(szServerip);//

      // If the supplied server address wasn't in the form

      // “aaa.bbb.ccc.ddd” it's a hostname, so try to resolve it

      //

      if(server.sin_addr.s_addr == INADDR_NONE){ host = gethostbyname(szServerip);if(host == NULL){ printf(“Unable to resolve server: %sn”, szServerip);return 1;} CopyMemory(&server.sin_addr, host->h_addr_list[0], host->h_length);} if(connect(sClient,(struct sockaddr *)&server, sizeof(server))== SOCKET_ERROR){ printf(“connect()failed: %dn”, WSAGetLastError());return 1;} //顯示接通信息

      //

      //

      //for(j=0;j<2;j++)

      //

      {

      ret = recv(sClient, szBuffer, DEFAULT_BUFFER, 0);if(ret == 0)// Graceful close

      return 0;else if(ret == SOCKET_ERROR){ printf(“recv()failed: %dn”, WSAGetLastError());return 0;} szBuffer[ret] = '