⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket_client.c

📁 Linux大学上机源码学习
💻 C
字号:
#include <errno.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h>#include <stdlib.h>void init_sockaddr(struct sockaddr_in *name,char *hostname,char *serv){   struct hostent *hp;  char *host,myname[255];  if(hostname==NULL){    gethostname(myname,sizeof(myname));    host=myname;    printf("your hostname is :%s\n",host);  } else   host=hostname; /* get host address information */  if((hp=gethostbyname(host))==NULL){    printf("Unknown host:%s\n",host);    exit(-1);  } /* add the IP and port of server */  bzero(name,sizeof(struct sockaddr));  if(hp->h_addrtype==AF_INET){    name->sin_family=AF_INET;    bcopy(hp->h_addr_list[0],&name->sin_addr,hp->h_length);    printf("addr=%o,len=%d\n",&name->sin_addr.s_addr,hp->h_length);    if (serv==NULL)       name->sin_port=htons(0);    else       name->sin_port=htons(atoi(serv));   } else{    printf("Unknown address type\n");    exit(-1);  }}int socket_connect(char *hostname,char *serv_port)  {    int sockfd;    struct sockaddr_in sockaddr;    struct hostent *hp;    char *host,myname[104];    /* init the IP and port of server*/    init_sockaddr(&sockaddr,hostname,serv_port);    if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){          printf("socket create error\n");          exit(0);     }          if((connect(sockfd,(struct sockaddr *)&sockaddr,sizeof(sockaddr)))<0){          printf("cann't connect server%s\n",strerror(errno));          exit(0);   }    return(sockfd); }int main(int argc,char **argv)  {     int sockfd,n;    char recvbuff[256],*host;    struct sockaddr_in servaddr;/*    if(argc<2)      host=NULL;    else       host=argv[1];*/    host=NULL;    sockfd=socket_connect(host,"2003");    write(sockfd,argv[1],sizeof(argv[1]));    while((n=read(sockfd,recvbuff,256))>0){      recvbuff[n]=0;      fputs(recvbuff,stdout);    }   if(n<0){      printf("read error");      exit(0);   }  return 0;}      

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -