Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Napisz programy klienta i serwera echa
- (analogiczne do Zadania 3)
- pracujące na gniazdach w dziedzinie
- Uniksa (na jednej maszynie).*/
- #include<sys/types.h>
- #include<sys/socket.h>
- #include<stdio.h>
- #include<sys/un.h>
- #include<arpa/inet.h>
- #include<string.h>
- #include<signal.h>
- #include<unistd.h>
- /*bez pelnej obslugi bledow */
- struct my_msg{
- char text[255];
- };
- char *plik;
- void obsluga(){
- remove(plik);
- kill(getpid(), SIGKILL);
- }
- int main(int argc, char *argv[])
- {
- signal(SIGINT, obsluga);
- plik = argv[1];
- int sockfd;
- struct sockaddr_un server_addr, client_addr;
- struct my_msg msg;
- socklen_t len;
- /*tworze gniazdo - na razie tylko czesc "protokol" */
- sockfd = socket(AF_UNIX, SOCK_DGRAM, 0);
- server_addr.sun_family = AF_UNIX; /*IPv4*/
- strcpy(server_addr.sun_path, argv[1]);
- bind(sockfd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_un));
- while(1) {
- recvfrom(sockfd, &msg, sizeof(msg), 0, (struct sockaddr *)&client_addr, &len);
- printf("Wiadomosc (od: %s): %s\n", client_addr.sun_path, msg.text);
- sendto(sockfd, &msg, sizeof(msg), 0, (struct sockaddr *)&client_addr, len);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement