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

📄 sock_getip.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 *addr,char *serv){     name->sin_family=AF_INET;    name->sin_addr.s_addr=inet_addr(addr);    if (serv==NULL)       name->sin_port=htons(0);    else       name->sin_port=htons(atoi(serv));}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;    static char xx[10]="asdfa";    struct sockaddr_in servaddr;    if(argc<2)      host="127.0.0.1";    else       host=argv[1];   sockfd=socket_connect(host,"2003");   write(sockfd,xx,sizeof(xx));   while((n=read(sockfd,recvbuff,256))>0){      recvbuff[n]=0;      printf("receve data is:%s",recvbuff);   }  if(n<0){     printf("read error");     exit(0);  }  return 0;}      

⌨️ 快捷键说明

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