Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* UDP sender */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #define RECV_PORT 7550
- #define RECV_IP "172.16.38.139"
- int main(){
- int pid;
- pid = fork();
- if(pid == 0){
- printf("figlio\n");
- int sockfd;
- struct sockaddr_in recv_addr;
- extern int errno;
- int i,n;
- char line[100];
- if((sockfd=socket(AF_INET,SOCK_DGRAM,0)) <0){
- printf("\nErrore nell'apertura del socket");
- return -1;
- }
- memset( &recv_addr,0, sizeof(recv_addr));
- recv_addr.sin_family = AF_INET;
- recv_addr.sin_addr.s_addr = inet_addr(RECV_IP);
- recv_addr.sin_port = htons(RECV_PORT);
- printf("\nInserisci un numero ");
- scanf("%d",&n);
- for(i=0;i<10;++i){
- sprintf(line,"\n %d",i+n);
- printf("%s",line);
- sendto(sockfd, line, strlen(line)+1, 0, (struct sockaddr *)&recv_addr, sizeof(recv_addr));
- }
- }
- else{
- printf("padre\n");
- int sockfd;
- struct sockaddr_in recv_addr, send_addr;
- //extern int errno;
- socklen_t l = sizeof(send_addr);
- char line[100];
- if((sockfd=socket(AF_INET,SOCK_DGRAM,0)) <0)
- { printf("\nErrore nell'apertura del socket");
- return -1;
- }
- memset((char *) &recv_addr,0,sizeof(recv_addr));
- recv_addr.sin_family = AF_INET;
- recv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- recv_addr.sin_port = htons(RECV_PORT);
- if(bind(sockfd, (struct sockaddr *) &recv_addr, sizeof(send_addr))<0){
- printf("\nErrore nel binding. Errore %d \n",errno);
- return -1;
- }
- for(;;){
- recvfrom(sockfd, line, 99,0, (struct sockaddr *)&send_addr,&l);
- printf("%s",line);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement