static int receiver(int* arg) { int len; char buffer[BUFFER_SIZE]; network_address_t dest; if (NULL != remote_name) { network_translate_hostname(remote_name, dest); connection = minisocket_client_create(dest, port_num, &error); } else { connection = minisocket_server_create(port_num, &error); } if (NULL == connection) { printf("Connection error.\n"); return -1; } else { minithread_fork(sender, NULL); printf("Connection successful. Type and enter to send messages.\n"); } while (1) { buffer[BUFFER_SIZE] = '\0'; len = minisocket_receive(connection, buffer, BUFFER_SIZE - 1, &error); buffer[len] = '\0'; printf("[Received message]: %s", buffer); } return 0; }
int serverMethod(int* arg) { char responseBuffer[30]; minisocket_error error; //create server server = minisocket_server_create(PORT_NUM, &error); assert(error == SOCKET_NOERROR); assert(server != NULL); //send from server int packets_sent = minisocket_send(server, aText, strlen(aText), &error); assert(packets_sent == strlen(aText)); assert(error == SOCKET_NOERROR); minisocket_close(server); minithread_sleep_with_timeout(15000); int response = minisocket_send(server, aText, strlen(aText), &error); assert(response == -1); assert(error == SOCKET_INVALIDPARAMS); error = SOCKET_NOERROR; //recreate server server = minisocket_server_create(PORT_NUM, &error); assert(error == SOCKET_NOERROR); assert(server != NULL); response = minisocket_receive(server, responseBuffer, 30, &error); assert(response == 20); assert(strcmp(responseBuffer, "bbbbbbbbbbbbbbbbbbbb") == 0); minithread_sleep_with_timeout(15000); //Assert that minisocket has closed response = minisocket_send(server, aText, strlen(aText), &error); assert(response == -1); assert(error == SOCKET_INVALIDPARAMS); fprintf(stderr, "Full Test Passed \n"); return 0; }
int create_server(int *arg) { minisocket_error error; int i = 0; printf("Server waits.\n"); server_socket = minisocket_server_create(port,&error); printf("Server created.\n"); minithread_fork(sender, &thread_id[i]); return 0; }
int serverMethod(int* arg) { //char responseBuffer[30]; minisocket_error error; //create server server = minisocket_server_create(PORT_NUM, &error); assert(error == SOCKET_NOERROR); assert(server != NULL); //Test sending a message of length 0 int response = minisocket_send(server, aText, 0, &error); assert(response == 0); assert(error == SOCKET_NOERROR); //Test sending a message of length -5 response = minisocket_send(server, aText, -5, &error); assert(response == -1); assert(error == SOCKET_INVALIDPARAMS); error = SOCKET_NOERROR; //Test sending a message of length 1, less than length of text buffer response = minisocket_send(server, aText, 1, &error); assert(response == 1); assert(error == SOCKET_NOERROR); //Test sending a message with NULL socket response = minisocket_send(NULL, aText, 1, &error); assert(response == -1); assert(error == SOCKET_INVALIDPARAMS); error = SOCKET_NOERROR; //Test sending a message with NULL message response = minisocket_send(server, NULL, 10, &error); assert(response == -1); assert(error == SOCKET_INVALIDPARAMS); error = SOCKET_NOERROR; //Test sending a message with length equal to length of strin buffer response = minisocket_send(server, bText, 20, &error); assert(response == 20); assert(error == SOCKET_NOERROR); //Test sending a message of length > MAX_LENGTH of message response = minisocket_send(server, cText, 10000, &error); assert(response == 10000); assert(error == SOCKET_NOERROR); return 0; }
int transmit(int* arg) { char buffer[BUFFER_SIZE]; int i; int bytes_sent; minisocket_t socket; minisocket_error error; minithread_fork(receive, NULL); // receiver = minithread_fork(receive, NULL); printf("in transmit\n"); socket = minisocket_server_create(port,&error); printf("created a server\n"); if (socket==NULL){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); return -1; } /* Fill in the buffer with numbers from 0 to BUFFER_SIZE-1 */ for (i=0; i<BUFFER_SIZE; i++){ buffer[i]=(char)(i%256); } /* send the message */ bytes_sent=0; while (bytes_sent!=BUFFER_SIZE){ int trans_bytes= minisocket_send(socket,buffer+bytes_sent, BUFFER_SIZE-bytes_sent, &error); printf("Sent %d bytes.\n",trans_bytes); if (error!=SOCKET_NOERROR){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); /* close the connection */ minisocket_close(socket); return -1; } bytes_sent+=trans_bytes; } /* close the connection */ minisocket_close(socket); return 0; }
int sender(int* arg) { char buffer[BUFFER_SIZE]; int i; int id; int bytes_sent; minisocket_t socket; minisocket_error error; id = *arg; //printf("*****GRADING: thread %d. Starting the server.\n", id); socket = minisocket_server_create(port[id],&error); if (socket==NULL) { printf("*****GRADING: thread %d.Can't create the server.\ Error code: %s.\n", id, GetErrorDescription(error)); return 0; } else {
int server(int* arg) { minisocket_error error; minisocket_t socket; char* msg; int data_len; msg = "hello\n"; data_len = strlen(msg) + 1; socket = minisocket_server_create(port,&error); printf("made a server\n"); if (socket==NULL){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); return -1; } minisocket_send(socket, msg, data_len, &error); printf("sent my thang!\n"); return 0; }
int server(int* arg) { int port; minisocket_t socket; minisocket_error error; port = *arg; socket = minisocket_server_create(port,&error); if (socket==NULL){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); return -1; } printf("Server connected on port %i\n", port); /* close the connection */ minisocket_close(socket); return 0; }
int server(int* arg) { (void)arg; //unused char buffer[BUFFER_SIZE]; minisocket_error error; minisocket_t *socket = minisocket_server_create(port,&error); if (socket==NULL){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); return -1; } // Fill in the buffer with numbers from 0 to BUFFER_SIZE-1 for (int i=0; i<BUFFER_SIZE; i++){ buffer[i]=(char)(i%256); } // send the message int bytes_sent=0; while (bytes_sent!=BUFFER_SIZE){ int trans_bytes= minisocket_send(socket,buffer+bytes_sent, BUFFER_SIZE-bytes_sent, &error); printf("Sent %d bytes.\n",trans_bytes); if (error!=SOCKET_NOERROR){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); /* close the connection */ minisocket_close(socket); return -1; } bytes_sent+=trans_bytes; } minisocket_close(socket); return 0; }
int transmit(int* arg) { minisocket_t socket; minisocket_error error; printf("starting transmit\n"); minithread_fork(receive, NULL); printf("continuing transmit\n"); socket = minisocket_server_create(port,&error); if (socket==NULL){ printf("ERROR: %s. Exiting. \n",GetErrorDescription(error)); return -1; } printf("server connected\n"); /* close the connection */ minisocket_close(socket); return 0; }