Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Napisz programy do przesyłania prostych komunikatów między dwoma komputerami zuż yciem protokoł u TCP/IP.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <unistd.h>
- #include <string.h>
- #define PORT 1919
- #define MAX_CLIENTS 5
- #define READ_BUFFER_SIZE 128
- void error_handler(const char *msg)
- {
- perror(msg);
- exit(EXIT_FAILURE);
- }
- int main(void)
- {
- struct sockaddr_in server_addr, client_addr;
- int server_socket, client_socket;
- char buffer[READ_BUFFER_SIZE];
- if((server_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1)
- error_handler("socket");
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(PORT);
- server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- memset(server_addr.sin_zero, '\0', 8);
- if(bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1)
- error_handler("bind");
- if(listen(server_socket, MAX_CLIENTS) == -1)
- error_handler("listen");
- printf("Oczekiwanie na polaczenie...\n");
- socklen_t struct_size = sizeof(struct sockaddr);
- if((client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &struct_size)) == -1)
- error_handler("accept");
- printf("Polaczono, oczekiwanie na przeslanie wiadomosci...\n");
- memset(buffer, '\0', READ_BUFFER_SIZE);
- if(read(client_socket, buffer, READ_BUFFER_SIZE-1) == -1)
- error_handler("read");
- printf("Przeslana wiadomosc: %s\n", buffer);
- if(close(server_socket) == -1)
- error_handler("close");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement