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

📄 client1.c

📁 this gives details of the network programming
💻 C
字号:
#include <stdio.h>	/* standard C i/o facilities */#include <stdlib.h>	/* needed for atoi() */#include <unistd.h>	/* Unix System Calls */#include <sys/types.h>	/* system data type definitions */#include <sys/socket.h> /* socket specific definitions */#include <netinet/in.h> /* INET constants and stuff */#include <arpa/inet.h>	/* IP address conversion stuff */#include <netdb.h>	/* Name lookups (gethostbyname) *//* This is the same as "client.c", except that it allows theuser to specify a hostname on the command line or an IP address(in dotted-decimal notation).*//* define the message we will send */char *message = "Networking Rules !!!\n";/* client program:   The following must passed in on the command line:         name of the server (argv[1])      port number of the server (argv[2])*/int main( int argc, char **argv ) {  int sk;  struct sockaddr_in skaddr;  struct hostent *hp;		/* used for name lookup */  /* first - check to make sure there are 2 command line parameters     (argc=3 since the program name is argv[0])   */  if (argc!=3) {    printf("Usage: client <server name> <server port>\n");    exit(0);  }  /* create a socket      IP protocol family (PF_INET)      TCP protocol (SOCK_STREAM)  */    if ((sk = socket( PF_INET, SOCK_STREAM, 0 )) < 0) {    printf("Problem creating socket\n");    exit(1);  }  /* fill in an address structure that will be used to specify     the address of the server we want to connect to     address family is IP  (AF_INET)     server IP address is found by calling gethostbyname with the     name of the server (entered on the command line)     server port number is argv[2] (entered on the command line)  */  skaddr.sin_family = AF_INET;  /* convert argv[1] to a network byte order binary IP address */  if ((hp = gethostbyname(argv[1]))!=0) {    /* Name lookup was successful - copy the IP address */    memcpy( &skaddr.sin_addr.s_addr, hp->h_addr, hp->h_length);  } else {    /* Name lookup didn't work, try converting from dotted decimal */    /*inet_aton is missing on Solaris - you need to use inet_addr! */    if (inet_aton(argv[1],&skaddr.sin_addr)==0) {      printf("Invalid IP address: %s\n",argv[1]);      exit(1);    }  }  skaddr.sin_port = htons(atoi(argv[2]));    /* attempt to establish a connection with the server */  if (connect(sk,(struct sockaddr *) &skaddr,sizeof(skaddr)) < 0 ) {    printf("Problem connecting socket\n");    exit(1);  }  /* Send a string and finish*/  write(sk,message,strlen(message));  close(sk);  return(0);}

⌨️ 快捷键说明

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