Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <netdb.h>
- #include <signal.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define SERVER_PORT 1234
- #define QUEUE_SIZE 5
- int main(int argc, char* argv[])
- {
- int server_socket_descriptor;
- int connection_socket_descriptor;
- int bind_result;
- int listen_result;
- char reuse_addr_val = 1;
- char buf[100];
- char l1[50];
- char l2[50];
- char toSend[100];
- char * l;
- struct sockaddr_in server_address;
- //inicjalizacja gniazda serwera
- memset(&server_address, 0, sizeof(struct sockaddr));
- server_address.sin_family = AF_INET;
- server_address.sin_addr.s_addr = htonl(INADDR_ANY);
- server_address.sin_port = htons(SERVER_PORT);
- server_socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);
- if (server_socket_descriptor < 0)
- {
- fprintf(stderr, "%s: Błąd przy próbie utworzenia gniazda..\n", argv[0]);
- exit(1);
- }
- setsockopt(server_socket_descriptor, SOL_SOCKET, SO_REUSEADDR, (char*)&reuse_addr_val, sizeof(reuse_addr_val));
- bind_result = bind(server_socket_descriptor, (struct sockaddr*)&server_address, sizeof(struct sockaddr));
- if (bind_result < 0)
- {
- fprintf(stderr, "%s: Błąd przy próbie dowiązania adresu IP i numeru portu do gniazda.\n", argv[0]);
- exit(1);
- }
- listen_result = listen(server_socket_descriptor, QUEUE_SIZE);
- if (listen_result < 0) {
- fprintf(stderr, "%s: Błąd przy próbie ustawienia wielkości kolejki.\n", argv[0]);
- exit(1);
- }
- while(1)
- {
- if((connection_socket_descriptor = accept(server_socket_descriptor, NULL, NULL))!=-1){
- while(read(connection_socket_descriptor, buf, sizeof(buf)>0)){}
- l=l1;
- int x=0;
- for(int i=0; i<sizeof(buf); i++){
- if(buf[i]==';') {l=l2; x=0;}
- l[x]=buf[i];
- x++;
- }
- int ll1, ll2;
- int suma;
- sscanf(l1, "%d", &ll1);
- sscanf(l2, "%d", &ll2);
- suma=ll1+ll2;
- sprintf(toSend, "%d", suma);
- write(connection_socket_descriptor, toSend, sizeof(toSend));
- printf("%s\n", toSend);
- }
- }
- close(server_socket_descriptor);
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement