// TCP Server test program #include #include #include #include #include int atoi(const char *str); int main(int argc , char *argv[]) { if(argc < 2) { printf("usage: tcp_server <4/6> \n"); printf("\t - where 4/6 represent IP version\n"); return 0; } int sock, client_sock, c, read_size, ipv = atoi(argv[1]), port = atoi(argv[2]); char client_message[2000]; char str[100]; int comm_fd; struct sockaddr_in servaddr; struct sockaddr_in client; sock = socket(AF_INET, SOCK_STREAM, 0); bzero( &servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htons(INADDR_ANY); servaddr.sin_port = htons(port); bind(sock, (struct sockaddr *) &servaddr, sizeof(servaddr)); printf("listening\n"); listen(sock , 3); printf("waiting to accept\n"); c = sizeof(struct sockaddr_in); client_sock = accept(sock, (struct sockaddr *)&client, (socklen_t*)&c); if (client_sock < 0) { perror("accept failed"); return 0; } printf("connection accepted\n reading...\n"); // RX int msglen = 1024; unsigned long count = 0; while(1) { count++; int bytes_read = read(client_sock, client_message, msglen); printf("[%lu] RX = (%d): ", count, bytes_read); for(int i=0; i