int main(int argc, char * argv[]) { int server_socket; //socket descriptor seq_num = 0; //setvbuf(stdin, (char *)NULL, _IOFBF, 0); /* check command line arguments */ if(argc!= 4) { printf("usage: %s handle host-name port-number \n", argv[0]); exit(1); } /* set up the socket for TCP transmission */ handle = strdup(argv[1]); if (strlen(handle) > 256) { printf("Handle must be less than 256 characters long\n"); } server_socket = tcp_send_setup(argv[2], argv[3]); while (1) { tcp_send_recv(server_socket); } close(server_socket); return 0; }
int main(int argc, char * argv[]) { int socket_num; //socket descriptor char *send_buf; //data buffer int bufsize= 0; //data buffer size int send_len= 0; //amount of data to send int sent= 0; //actual amount of data sent /* check command line arguments */ if(argc!= 3) { printf("usage: %s host-name port-number \n", argv[0]); exit(1); } /* set up the socket for TCP transmission */ socket_num = tcp_send_setup(argv[1], argv[2]); /* initialize data buffer for the packet */ bufsize= 1024; send_buf= (char *) malloc(bufsize); /* get the data and send it */ printf("Enter the data to send: "); send_len = 0; while ((send_buf[send_len] = getchar()) != '\n' && send_len < 80) { send_len++; } send_buf[send_len] = '\0'; /* now send the data */ sent = send(socket_num, send_buf, send_len, 0); if(sent < 0) { perror("send call"); exit(-1); } printf("String sent: %s \n", send_buf); printf("Amount of data sent is: %d\n", sent); close(socket_num); return 0; }
int main(int argc, char * argv[]) { int socket_num; //socket descriptor char send_buf[BUF_SIZE]; //data buffer int send_len= 0; //amount of data to send char in_buf[BUF_SIZE]; //data buffer char cmd_buf[CMD_SIZE]; int in_len = 0; int sent= 0; //actual amount of data sent u_int32_t seq = 0; Header header; int code = 0; int err = 0; int result = 0; int print = 1; fd_set readSet; /* check command line arguments */ if(argc!= 4) { printf("usage: %s host-name port-number handle\n", argv[0]); exit(1); } send_len = init_client(seq++, argv[3], send_buf); /* set up the socket for TCP transmission */ socket_num= tcp_send_setup(argv[1], argv[2]); send(socket_num, send_buf, send_len, 0); /* get the data and send it */ do { FD_ZERO(&readSet); FD_SET(STDIN_FILENO, &readSet); FD_SET(socket_num, &readSet); Prompt(&print, &err); result = select(socket_num + 1, &readSet, NULL, NULL, NULL); if(result < 0) { perror("select call"); exit(-1); } if (FD_ISSET(STDIN_FILENO, &readSet)) { in_len = read(STDIN_FILENO, in_buf, BUF_SIZE); sscanf(in_buf, " %3s", cmd_buf); if (cmd_buf[2] == '\0' && cmd_buf[0] == '%') { code = handle_cmd(cmd_buf[1], send_buf, argv[3], &header, in_buf + strlen(cmd_buf), in_len, &send_len, &print); Send(&code, &sent, &seq, &socket_num, send_buf, &send_len); } else { print = 1; printf("Invalid command\n"); } } if(FD_ISSET(socket_num, &readSet)) { in_len = recv(socket_num, in_buf, BUF_SIZE, 0); if (in_len <= 0) { err = 2; printf("\nServer Terminated"); } else { err = handle_server_data(in_buf, argv[3], in_len, socket_num); SetFlags(&err, &print); } } } while(err != 2); close(socket_num); return 0; }