// cc -o client -dynamic -lcurses client.c #include #include #include #include #include int main(int argc, char *argv[]) { int client_sock; struct sockaddr_in sa; int ch; client_sock = socket(AF_INET, SOCK_STREAM, 0); sa.sin_family = AF_INET; sa.sin_port = 26000; ascii2addr(AF_INET, argv[1], &sa.sin_addr.s_addr); connect(client_sock, (struct sockaddr *)&sa, sizeof(sa)); initscr(); cbreak(); noecho(); printw("Type something: "); while (1) { ch = getch(); write(client_sock, &ch, sizeof(ch)); if (ch == '!') break; read(client_sock, &ch, sizeof(ch)); printw("%c", ch); } endwin(); close(client_sock); return 0; }