//----------------------------------------------------------------- // echo_cl.c : 文字列を送受信するクライアント //----------------------------------------------------------------- #include #include "tcp_lib.h" //----------------------------------------------------------------- int echo_client(char *server,int portno); //----------------------------------------------------------------- int main(int argc, char *argv[]) { int portno; char *server; if(argc != 3) { fprintf(stdout,"Usage: %s host port\n",argv[0]); return 0; } server = argv[1]; portno = atoi(argv[2]); echo_client(server,portno); return 0; } //----------------------------------------------------------------- // echo クライアント //----------------------------------------------------------------- int echo_client(char *server, int portno) { int sock; BYTE sbuf[BUFSIZ],rbuf[BUFSIZ]; FILE *in,*out; // ソケット通信の開始 if((sock = TCP_open(server,portno)) < 0) { exit(1); } // ソケットからファイル記述子への割当て if(fdopen_sock(sock,&in,&out) < 0) { exit(1); } // 通信内容 printf("==> "); fflush(stdout); while(fgets(sbuf,BUFSIZ,stdin)) { fprintf(stdout,"sending: [%s]\n",sbuf); fprintf(out,"%s",sbuf); fgets(rbuf,BUFSIZ,in); printf("received: [%s]\n",rbuf); printf("==> "); fflush(stdout); strcpy(rbuf,""); } printf("\n"); // 通信先のクローズ fclose(in); fclose(out); return 0; }