クライアントのプログラム

  概要   プログラム   解説

プログラム

/**********************************************************************/
/*   client.c : simple internet socket client program                 */
/*   Jan 6,2001  copyright Takeshi FUJIKI (fujiki@fc-lab.com)         */
/**********************************************************************/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define BUFLEN 1024
#define HOSTNAME "www.fc-lab.com"
#define IP_ADDRESS "192.168.0.4"
#define PORT 80

/* 以下の2つのうちいずれかを有効にする */
#define BY_HOSTNAME
/* #define BY_ADDRESS */

main(int argc,char argv[]) {
  struct hostent *host;
  struct sockaddr_in server;

  int s;
  int n;
  char buf[BUFLEN];
  char *p;

  bzero((char *)&server,sizeof(server));
  server.sin_family = AF_INET;
  server.sin_port = htons(PORT);

#if defined(BY_HOSTNAME)
  /* ホスト名によるサーバアドレスの設定 */
  host = gethostbyname(HOSTNAME);
  bcopy(host->h_addr,(char *)&server.sin_addr,host->h_length);
#elif defined(BY_ADDRESS)
  /* IPアドレスによるサーバアドレスの設定 */
  server.sin_addr.s_addr = inet_addr(IP_ADDRESS);
#endif

  s = socket(AF_INET,SOCK_STREAM,0);
  connect(s,&server,sizeof(server));

  p = "GET / HTTP/1.0\r\n\r\n";
  write(s,p,strlen(p));

  while(n = read(s,buf,BUFLEN)) {
    write(1,buf,n);
  }
  close(s);
}
FC Labのホームへ 「ネットワークプログラミング」のページへ