//-----------------------------------------------------------------
//  echo_cl.c : 文字列を送受信するクライアント
//-----------------------------------------------------------------
#include <stdio.h>
#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;
}