システムプログラム02-ver02_client

「システムプログラム02-ver02_client」の編集履歴(バックアップ)一覧はこちら

システムプログラム02-ver02_client」(2010/07/14 (水) 18:33:39) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

/* ポート番号9000を使用する */ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #define NSTRS 1 /* 文字列の個数 */ #define STRMAX 60 /* 文字列長さ */ char *strs[NSTRS]; extern int errono; void input_strs(){ int i; char e[]="\n"; for(i=0;i<NSTRS;i++){ printf("str[%d]:",i); strs[i]=malloc(STRMAX); gets(strs[i]); strcat(strs[i],e); } } int main(int ac, char *av[]){ char c; FILE *fp; char hostname[64]; register int i,s; struct hostent *hp; struct sockaddr_in sin; printf(">> client run\n"); /* まずホストネームを取得 */ printf("__connect server name ? :"); gets(hostname); if((hp=gethostbyname(hostname))==NULL){ fprintf(stderr,"%s: unknown host.\n", hostname); exit(1); } if((s=socket(AF_INET,SOCK_STREAM,0))<0){ perror("clisent: socket"); exit(1); } sin.sin_family=AF_INET; sin.sin_port=htons(9000); bcopy(hp->h_addr,&sin.sin_addr,hp->h_length); if(connect(s, (struct sockaddr*)&sin, sizeof(sin))<0){ perror("client: connect"); exit(1); } /* 送る文字列を作成する */ input_strs(); /* こちらから文字列をサーバーに送る */ for(i=0;i<NSTRS;i++) send(s,strs[i],strlen(strs[i]),0); fp=fdopen(s,"r"); /* サーバーから文字列を読み取り、それを表示する */ printf(">> text from server\n"); for(i=0;i<NSTRS;i++){ while((c=fgetc(fp))!=EOF){ putchar(c); if(c=='\n') break; } } /* *ここで、通信を切断するために、close()を用いる */ close(s); exit(0); }

表示オプション

横に並べて表示:
変化行の前後のみ表示: