/**********************************************************************/
/* 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);
}
|