Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- int main(int argc, char *argv[]) {
- int buff_size;
- int socket_desc, new_socket, c, data_size, i;
- struct sockaddr_in server, client;
- int read_size;
- char client_message[20], received_data[20], operation_sign = 0, received_data_size = 0;
- char *tmp_buff;
- char result = 0;
- socket_desc = socket(AF_INET, SOCK_STREAM, 0);
- if (socket_desc == -1) {
- perror("Could not create socket");
- }
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
- server.sin_port = htons(8888);
- if (bind(socket_desc, (struct sockaddr *) &server, sizeof(server)) < 0) {
- perror("Problem dolaczenia gniazda");
- }
- puts("Dolaczono gniazdo strumieniowe");
- listen(socket_desc, 3);
- puts("SERWER TCP: Czekam na polaczenie...");
- c = sizeof(struct sockaddr_in);
- while (1) {
- new_socket = accept(socket_desc, (struct sockaddr *) &client, (socklen_t *) &c);
- if (new_socket < 0) {
- perror("Problem z akceptacja poloczenia");
- }
- puts("Polaczenie zaakceptowane");
- while ((read_size = (int) recv(new_socket, client_message, 3000, 0)) > 0) {
- puts("SERWER: Dane odebrano");
- operation_sign = client_message[0];
- for (i = 1; i < 20; i++) {
- if (client_message[i] == 0) {
- //dane + symbol obliczenia
- received_data_size = (char) (i);
- break;
- }
- }
- // char received_data[buff_size];
- printf("received_data_size => %d\n", received_data_size);
- for (i = 0; i < received_data_size; i++) {
- received_data[i] = client_message[i + 1];
- printf("received_data[%d] %d\n", i, client_message[i]);
- }
- for (i = 0; i < received_data_size; i++) {
- client_message[i] = 0;
- }
- received_data_size = 0;
- for (i = 0; i < received_data_size; i++) {
- result += received_data[i];
- }
- tmp_buff[0] = result;
- puts("tmp_buff[0] = result;");
- close(new_socket);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment