当前位置:   article > 正文

tcp_client.c 客户程序服务模型

tcp_client.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. #define portnumber 3333
  10. int main(int argc,char *argv[])
  11. {
  12. int sockfd;
  13. char buffer[1024];
  14. struct sockaddr_in server_addr;
  15. struct hostent *host;
  16. /*使用hostname查询host 名字*/
  17. if(argc!=2)
  18. {
  19. fprintf(stderr,"Usage:%s hostname \a\n",argv[0]);
  20. exit(1);
  21. }
  22. if((host=gethostbyname(argv[1]))==NULL)
  23. {
  24. fprintf(stderr,"Gethostname error\n");
  25. exit(1);
  26. }
  27. /*客户程序开始建立sockfd描述符*/
  28. if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)//AF_INET:INTERNET;SOCK_STREAM:TCP
  29. {
  30. fprintf(stderr,"Socket Error:%s\a\n",strerror(errno));
  31. exit(1);
  32. }
  33. /*客户程序填充服务器的资料*/
  34. bzero(&server_addr,sizeof(server_addr)); //初始化,置0
  35. server_addr.sin_family=AF_INET; //internet
  36. server_addr.sin_port=htons(portnumber);//将本机上的long数据转化为网络上的long数据
  37. server_addr.sin_addr=*((struct in_addr *)host->h_addr);//IP地址
  38. /*客户程序发起连接请求*/
  39. if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)
  40. {
  41. fprintf(stderr,"Connection Error:%s\a\n",strerror(errno));
  42. exit(1);
  43. }
  44. /*连接成功了*/
  45. printf("Please input char:\n");
  46. /*发送数据*/
  47. fgets(buffer,1024,stdin);
  48. write(sockfd,buffer,strlen(buffer));
  49. /*结束通讯*/
  50. close(sockfd);
  51. }

 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/158750
推荐阅读
相关标签
  

闽ICP备14008679号