summaryrefslogtreecommitdiffstats
path: root/client.c
diff options
context:
space:
mode:
authorvictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-08-15 18:40:13 +0800
committervictor <victor@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-08-15 18:40:13 +0800
commit449d862fbbbde494e94ba0bbc4689b91ca986175 (patch)
treef9d72d4c55643071dd8e633afa1ac7166a0552d0 /client.c
parent7b976a8121e3a2365abde9a90375a9bba1600e2d (diff)
downloadpttbbs-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.c56
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;
+}