程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 對C++手冊內容簡介

對C++手冊內容簡介

編輯:C++入門知識

學無止境,最近學習了C++手冊的一些知識,寫了二段代碼.希望有人來點評,指出其中的錯誤,或需要改進的地點.在寫的過程當中,遇到很多問題,不段的問人,在貼求助。

查看C++手冊,查看網上教程才得以寫出. 但C++的許多基礎知識我還是不懂.並不段的在學習.  由於工作繁忙,學習進度實在是小得可憐,發了很多C++語言的基礎.在那裡我學到了許多知識. 如果打算學習C++手冊的成員們就一起吧。

  1. #include <stdlib.h>    
  2. #include <stdio.h>    
  3. #include <errno.h>    
  4. #include <string.h>    
  5. #include <netdb.h>    
  6. #include <sys/types.h>    
  7. #include <netinet/in.h>    
  8. #include <sys/socket.h>    
  9. #include <syslog.h>    
  10. #include <unistd.h>     
  11. #include <netinet/in.h>      
  12. #include <sys/socket.h>        
  13. #include <arpa/inet.h>        
  14. #include <errno.h>    
  15. #include <sys/ipc.h>        
  16. #include <sys/shm.h>    
  17. /*建立精靈進程*/    
  18. int daemon_init(void)    
  19. { pid_t pid;    
  20. if((pid = fork()) < 0) return(-1);    
  21. else if(pid != 0) exit(0); /* parent exit */    
  22. /* child continues */    
  23. setsid(); /* become session leader */    
  24. chdir("//tmp"); /* change working directory */    
  25. umask(0); /* clear file mode creation mask */    
  26. close(0); /* close stdin */    
  27. close(1); /* close stdout */    
  28. close(2); /* close stderr */    
  29. return(0); }    
  30. /*讀取文件數據*/    
  31. void myread(char *buff)    
  32. {    
  33. char buf[1024];    
  34. FILE *fp;    
  35. fp = fopen("/proc/net/dev", "r");    
  36. if(!fp)    
  37.  {    
  38. perror("fopen");    
  39. exit(2);    
  40. }    
  41. fgets(buf, 1024, fp);    
  42. fgets(buf, 1024, fp);    
  43. fgets(buf, 1024, fp);    
  44. fgets(buf, 1024, fp);    
  45. fscanf(fp, "%s", buf);   /*從第三行開始讀*/    
  46. snprintf(buff, 100, "%s", buf);    
  47. fclose(fp);    
  48. printf("%s\n", buf);    
  49. }    
  50.     
  51. int main(int argc, char *argv[])    
  52. {    
  53. int sockfd,new_fd;     
  54. struct sockaddr_in server_addr;    
  55. struct sockaddr_in client_addr;    
  56. int sin_size,portnumber;    
  57. char hello[1024];    
  58. /* 服務器端開始建立socket描述符 */    
  59. if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)    
  60. {    
  61. printf("Socket error:%s\n\a",strerror(errno));    
  62. exit(1);    
  63. }    
  64. /* 服務器端填充 sockaddr_in結構 */    
  65. bzero(&server_addr,sizeof(struct sockaddr_in));    
  66. server_addr.sin_family=AF_INET;    
  67. server_addr.sin_addr.s_addr=inet_addr("本機IP");        
  68. server_addr.sin_port=htons(10240); /*端口號轉換為網絡字節序*/    
  69. /* 捆綁sockfd描述符 */    
  70. if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==    
  71. -1)    
  72. {    
  73. printf("Bind error:%s\n\a",strerror(errno));    
  74. exit(1);    
  75. }    
  76. /* 監聽sockfd描述符 */    
  77. if(listen(sockfd,5)==-1) /*5為請求隊列的最大請求數*/    
  78. {    
  79. printf("Listen error:%s\n\a",strerror(errno));    
  80. exit(1);    
  81. }    
  82. while(1)    
  83. {    
  84. /* 服務器阻塞,直到客戶程序建立連接 */    
  85. sin_size=sizeof(struct sockaddr_in);    
  86. if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size    
  87. ))==-1)    
  88. {    
  89. printf("Accept error:%s\n\a",strerror(errno));    
  90. exit(1);    
  91. }    
  92. /*inet_ntoa的作用是將一個32位Ipv4地址轉換為相應的點分十進制數串*/    
  93. printf("Server get connection from %s\n",inet_ntoa(client_addr.sin_addr));    
  94. /*向客戶端發送hello字符數組的內容*/    
  95. myread(hello);    
  96. if(write(new_fd,hello,strlen(hello))==-1)    
  97. {    
  98. printf("Write Error:%s\n",strerror(errno));    
  99. exit(1);    
  100. }    
  101. /* 這個通訊已經結束 */    
  102. close(new_fd);    
  103. }/* while結尾處*/    
  104. close(sockfd);    
  105. exit(0);    
  106. }   
  1. C與C++中標准輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved