blob: 926a324a21a387c72b63966298228bcccdd09f42 (
plain) (
tree)
|
|
#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;
}
|