// cc -o server server.c #include #include #include #include int main(void) { int listen_sock, server_sock; struct sockaddr_in sa, nsa; socklen_t nlen; int ch; listen_sock = socket(AF_INET, SOCK_STREAM, 0); sa.sin_family = AF_INET; sa.sin_port = 26000; sa.sin_addr.s_addr = INADDR_ANY; bind(listen_sock, (struct sockaddr *)&sa, sizeof(sa)); listen(listen_sock, 5); printf("Listening...\n"); nlen = sizeof(nsa); server_sock = accept(listen_sock, (struct sockaddr *)&nsa, &nlen); printf("Connected.\nReceiving characters.\n"); while (1) { read(server_sock, &ch, sizeof(ch)); printf("%c", ch); fflush(stdout); if (ch == '!') break; write(server_sock, &ch, sizeof(ch)); } close(server_sock); close(listen_sock); return 0; }