diff options
author | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-15 18:40:13 +0800 |
---|---|---|
committer | victor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-08-15 18:40:13 +0800 |
commit | 449d862fbbbde494e94ba0bbc4689b91ca986175 (patch) | |
tree | f9d72d4c55643071dd8e633afa1ac7166a0552d0 /client.c | |
parent | 7b976a8121e3a2365abde9a90375a9bba1600e2d (diff) | |
download | pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.gz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.bz2 pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.lz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.xz pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.tar.zst pttbbs-449d862fbbbde494e94ba0bbc4689b91ca986175.zip |
new developed servicebank
git-svn-id: http://opensvn.csie.org/pttbbs/branches/bank@1102 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/client.c b/client.c new file mode 100644 index 00000000..926a324a --- /dev/null +++ b/client.c @@ -0,0 +1,56 @@ +#include "bank.h" + +extern int sockfd; + +char* chomp(char *str){ + int len; + len = strlen(str); + if(len > 0 && str[len - 1] == '\n') + str[len - 1] = 0; + return str; +} + +void client_work(FILE *fp){ + char buf[STRLEN]; + while(fgets(buf, sizeof(buf), stdin) != NULL){ + printf("before sending\n"); + chomp(buf); + writeln(buf); + if(!strcasecmp(buf, "quit")) + break; + printf("> %s\n", readline(buf, 0)); + } +} + +void init_net(char *addr){ + struct hostent *host = NULL; + struct sockaddr_in serv_addr; + + if((host = gethostbyname(addr)) == NULL){ + herror("gethostbyname"); + exit(-1); + } + bcopy(host->h_addr, &serv_addr.sin_addr, host->h_length); + + if((sockfd = socket(PF_INET, SOCK_STREAM, 0)) < 0){ + herror("socket"); + } + + bzero((char *) &serv_addr, sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); + serv_addr.sin_port = htons(PORT); + inet_pton(AF_INET, addr, &serv_addr.sin_addr); + + connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)); +} + +int main(int argc, char **argv){ +// if(argc != 3) +// exit(-1); + + init_net(argv[1]); + client_work(stdin); + + return 0; +} |