青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

旭++

張旭的C++學(xué)習(xí)筆記
posts - 5, comments - 8, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
      今天重新把socket編程中的每一個(gè)函數(shù)的功能和說明都仔細(xì)的看了一遍,也有了更深一層的理解。在經(jīng)歷一次面試的失利之后,我覺得最大的問題就出在沒有對(duì)學(xué)過的知識(shí)力求甚解,導(dǎo)致對(duì)概念不清楚。所以在看這部分知識(shí)的時(shí)候,倍加用心的研究。
      socket編程中主要用到一個(gè)結(jié)構(gòu) sockaddr和以下幾個(gè)函數(shù),socket(),bind(),connect(),listen(),accept(),send(),recv()。
      bind函數(shù)是使用listen函數(shù)的必要條件,如果只需要connect的話,bind是不需要的。bind的作用是將套接字和機(jī)器的端口聯(lián)系起來。
      connect()是建立兩臺(tái)電腦連接的必要函數(shù),首先要有一個(gè)已經(jīng)建立好的socket套接字,還有你要連接的目標(biāo)主機(jī)的ip地址以及端口號(hào)等信息。
      accept(),當(dāng)connect的時(shí)候,主機(jī)需要通過accept來接受本次連接,accept需要對(duì)套接字進(jìn)行bind()。當(dāng)accept成功之后,函數(shù)會(huì)返回一個(gè)新的套接字描述符,通過新的描述符可以真對(duì)新的套接字進(jìn)行send和recv操作。
      listen()是對(duì)端口的監(jiān)聽,你可以設(shè)定一個(gè)列隊(duì)的數(shù)量上線,這樣,在多個(gè)訪問請(qǐng)求到達(dá)的時(shí)候,可以排成隊(duì)伍,超過列隊(duì)上限的訪問將被拒絕。

簡(jiǎn)單的服務(wù)器
  這個(gè)服務(wù)器所做的全部工作是在流式連接上發(fā)送字符串 "Hello, World!\n"。你要測(cè)試這個(gè)程序的話,可以在一臺(tái)機(jī)器上運(yùn)行該程序,然后 在另外一機(jī)器上登陸:
   $ telnet remotehostname 3490
remotehostname 是該程序運(yùn)行的機(jī)器的名字。
服務(wù)器代碼:
 1#include <stdio.h>
 2  #include <stdlib.h>
 3  #include <errno.h>
 4  #include <string.h>
 5  #include <sys/types.h>
 6  #include <netinet/in.h>
 7  #include <sys/socket.h>
 8  #include <sys/wait.h>
 9#define MYPORT 3490 /*定義用戶連接端口*/ 
10#define BACKLOG 10 /*多少等待連接控制*/ 
11main() 
12   
13   int sockfd, new_fd; /* listen on sock_fd, new connection on new_fd 
14*/
 
15   struct sockaddr_in my_addr; /* my address information */ 
16   struct sockaddr_in their_addr; /* connector's address information */ 
17   int sin_size;
18if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1
19   perror("socket"); 
20   exit(1); 
21   }
 
22
23my_addr.sin_family = AF_INET; /* host byte order */ 
24   my_addr.sin_port = htons(MYPORT); /* short, network byte order */ 
25   my_addr.sin_addr.s_addr = INADDR_ANY; /* auto-fill with my IP */ 
26   bzero(&(my_addr.sin_zero),; /* zero the rest of the struct */ 
27
28if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct 
29sockaddr))== -1
30   perror("bind"); 
31   exit(1); 
32   }
 
33if (listen(sockfd, BACKLOG) == -1
34   perror("listen"); 
35   exit(1); 
36   }
 
37
38while(1/* main accept() loop */ 
39   sin_size = sizeof(struct sockaddr_in); 
40   if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, \ 
41   &sin_size)) == -1
42   perror("accept"); 
43   continue
44   }
 
45   printf("server: got connection from %s\n", \ 
46   inet_ntoa(their_addr.sin_addr)); 
47   if (!fork()) /* this is the child process */ 
48   if (send(new_fd, "Hello, world!\n"140== -1
49   perror("send"); 
50   close(new_fd); 
51   exit(0); 
52   }
 
53   close(new_fd); /* parent doesn't need this */ 
54while(waitpid(-1,NULL,WNOHANG) > 0); /* clean up child processes */ 
55   }
 
56   }
 
57
58

簡(jiǎn)單的客戶程序
  這個(gè)程序比服務(wù)器還簡(jiǎn)單。這個(gè)程序的所有工作是通過 3490 端口連接到命令行中指定的主機(jī),然后得到服務(wù)器發(fā)送的字符串。
客戶代碼:
#include <stdio.h>
  #include 
<stdlib.h>
  #include 
<errno.h>
  #include 
<string.h>
  #include 
<sys/types.h>
  #include 
<netinet/in.h>
  #include 
<sys/socket.h>
  #include 
<sys/wait.h>
#define PORT 3490 /* 客戶機(jī)連接遠(yuǎn)程主機(jī)的端口 */ 
#define MAXDATASIZE 100 /* 每次可以接收的最大字節(jié) */ 
int main(int argc, char *argv[]) 
   

   
int sockfd, numbytes; 
   
char buf[MAXDATASIZE]; 
   
struct hostent *he; 
   
struct sockaddr_in their_addr; /* connector's address information */ 
if (argc != 2
   fprintf(stderr,
"usage: client hostname\n"); 
   exit(
1); 
   }
 
if ((he=gethostbyname(argv[1])) == NULL) /* get the host info */ 
   herror(
"gethostbyname"); 
   exit(
1); 
   }
 

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1
   perror(
"socket"); 
   exit(
1); 
   }
 

their_addr.sin_family 
= AF_INET; /* host byte order */ 
  their_addr.sin_port 
= htons(PORT); /* short, network byte order */ 
  their_addr.sin_addr 
= *((struct in_addr *)he->h_addr); 
  bzero(
&(their_addr.sin_zero),; /* zero the rest of the struct */ 
if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct 
sockaddr)) 
== -1
   perror(
"connect"); 
   exit(
1); 
   }
 
if ((numbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1
   perror(
"recv"); 
   exit(
1); 
   }
 
buf[numbytes] 
= '\0'
printf(
"Received: %s",buf); 
close(sockfd); 
return 0
   }
 


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美高清在线| 亚洲欧美精品一区| 亚洲欧美在线aaa| 蜜桃av噜噜一区二区三区| 一区二区欧美国产| 亚洲国产精品99久久久久久久久| 国产精品毛片a∨一区二区三区| 欧美国产日本高清在线| 欧美精品一区二区高清在线观看| 久久夜色撩人精品| 美女诱惑一区| 欧美性猛交xxxx乱大交退制版| 欧美日韩高清在线观看| 国产精品成人免费| 国产专区一区| 一区二区三区高清| 乱码第一页成人| 亚洲小视频在线观看| 久久夜色精品国产亚洲aⅴ| 国产毛片精品国产一区二区三区| 亚洲欧洲日韩在线| 欧美mv日韩mv亚洲| 免费看黄裸体一级大秀欧美| 欧美一区二区| 欧美激情综合五月色丁香小说| 久色婷婷小香蕉久久| 国产视频精品免费播放| 亚洲欧美成人在线| aaa亚洲精品一二三区| 免费久久99精品国产自在现线| 永久免费精品影视网站| 久久久精品久久久久| 久久国产夜色精品鲁鲁99| 国产精品久久久久毛片大屁完整版 | 亚洲国产精品一区二区www在线| 亚洲国产一二三| 欧美精品在线观看91| 亚洲毛片一区| 一区二区欧美在线观看| 欧美三级精品| 亚洲欧美激情视频| 亚洲欧美日韩中文视频| 激情久久影院| 亚洲欧洲日产国产综合网| 欧美极品在线播放| 亚洲影视在线播放| 欧美一区免费视频| 亚洲电影免费观看高清完整版| 麻豆成人av| 欧美视频在线观看| 久久综合精品国产一区二区三区| 久久成人18免费观看| 免费日韩av| 亚洲第一区色| 国产欧美精品一区二区色综合 | 亚洲一区二区在| 国产精品一区二区视频| 老司机精品久久| 国产精品v欧美精品v日本精品动漫 | 久久青草久久| 亚洲色图自拍| 久久综合色天天久久综合图片| 一本久久知道综合久久| 亚洲欧美视频在线| 亚洲免费视频网站| 欧美**字幕| 亚洲第一综合天堂另类专| 国产精品入口日韩视频大尺度| 亚洲精品国久久99热| 亚洲三级视频| 欧美精品一区二区三区在线播放 | 国产精品视频最多的网站| 亚洲一级黄色av| 亚洲专区一区| 最新日韩在线| 亚洲欧美日韩一区二区在线 | 亚洲美女视频在线免费观看| 欧美综合国产精品久久丁香| 欧美日韩中文精品| 日韩午夜剧场| 亚洲精品日产精品乱码不卡| 亚洲欧美国产三级| 午夜日韩在线| 狠狠色伊人亚洲综合网站色| 久久久久久一区二区| 麻豆av一区二区三区| 激情综合视频| 欧美高清视频在线观看| 一区二区三区成人精品| 91久久精品日日躁夜夜躁欧美| 亚洲免费影视| 日韩视频免费观看| 欧美精品色网| 99热免费精品在线观看| 99亚洲视频| 欧美视频在线看| 亚洲淫性视频| 麻豆国产精品777777在线 | 午夜精品久久久久久久久久久久 | 亚洲欧美日本伦理| 国产精品伊人日日| 亚洲在线免费观看| 欧美 日韩 国产 一区| 国产精品久久综合| 性xx色xx综合久久久xx| 欧美一区成人| 激情自拍一区| 浪潮色综合久久天堂| 久久露脸国产精品| 在线欧美影院| 欧美不卡视频一区| 欧美一区二区精美| 亚洲一区二区免费视频| 日韩天堂av| 一区二区三区久久精品| 99精品欧美一区二区三区| 99国产精品私拍| 一级成人国产| 亚洲免费观看高清完整版在线观看熊 | 中日韩美女免费视频网站在线观看| 国产欧美丝祙| 国产麻豆精品视频| 国产精品自在欧美一区| 欧美性猛交xxxx免费看久久久 | 久久精品人人做人人综合| 久久不射电影网| 欧美a级片一区| 欧美日韩亚洲一区在线观看| 欧美极品色图| 欧美电影免费观看高清| 亚洲欧美视频在线观看| 亚洲精品久久久久久下一站| 你懂的网址国产 欧美| 欧美国产一区在线| 卡一卡二国产精品| 美国十次了思思久久精品导航| 欧美一级淫片aaaaaaa视频| 欧美一区二区三区在| 欧美激情视频网站| 亚洲成人在线网站| 亚洲欧美日韩综合aⅴ视频| 欧美日韩一区二区国产| 黄色国产精品| 久久欧美肥婆一二区| 亚洲精品国产精品国自产观看浪潮 | 欧美成人首页| 精品电影在线观看| 久久伊伊香蕉| 久久久精品一区二区三区| 国产精品综合不卡av| 欧美一区91| 欧美影院在线| 国模大胆一区二区三区| 香蕉久久a毛片| 日韩视频在线观看一区二区| 久久夜精品va视频免费观看| 国产亚洲免费的视频看| 激情欧美一区二区| 久久国产精品久久久久久| 一区二区福利| 欧美亚洲成人网| 亚洲性感激情| 欧美电影在线观看| 免费成人美女女| 99热这里只有精品8| 日韩视频不卡中文| 欧美午夜宅男影院在线观看| 亚洲一区二区三区四区中文| 久久九九久久九九| 亚洲欧美日韩在线综合| 在线观看91精品国产麻豆| 欧美激情精品久久久久久久变态| 亚洲一区三区视频在线观看| 国产日韩专区| 欧美成人一区二区三区在线观看| 亚洲欧美国产一区二区三区| 欧美一二区视频| 国产欧美一区二区精品仙草咪| 9l国产精品久久久久麻豆| 日韩视频免费观看高清在线视频 | 国产亚洲一区二区在线观看| 日韩系列欧美系列| 免费观看日韩| 免费亚洲一区二区| 欧美freesex交免费视频| 亚洲一区国产一区| 欧美成人在线网站| 美女被久久久| 亚洲裸体视频| 亚洲欧美国产精品va在线观看| 国产伦精品一区| 狼狼综合久久久久综合网| 久久久久久综合| 99亚洲伊人久久精品影院红桃| 亚洲欧洲一级| 国语自产精品视频在线看一大j8 | 亚洲精品视频在线观看网站| 亚洲精品激情| 黄色av日韩| 久久精品123|