© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies

Home Lab Exercise Network Lab Exercise Programs Implementation Of Peer to Peer connection using udp▼


Implementation Of Peer to Peer connection using udp:

Algorithm Steps:

    Step 1: start

    Step 2: Read peer one’s IP, Port ID and peer two’s IP and port ID

    Step 3: Create a socket with address family PF_INET type SOCK_DGRAM  and default protocol.

    Step 4: Initialize the socket and set its attribute set required port no.

    Step 5: Connect to server using connect () function to initiate the request.

    Step 6: If command line argument count equal to 4 then send the message to   server.

    Step 7: Receive the string from the server and print it at the console.

    Step 8: stop.

C Program To Implement Peer to Peer connection using udp

include #include #include #include #include #include #include #include #define MAXBUF 1024 #define MY_PORT 9998 #define PEER_PORT 9999 #define MAXIP 16 /* XXX.XXX.XXX.XXX */ char buffer[MAXBUF]; /*--------------------------------------------------------------------*/ /* SetAddress */ /* */ /* Fill Addr with info from XXX.XXX.XXX.XXX:XXXXX format. */ /*--------------------------------------------------------------------*/ int SetAddress(char* Composite, struct sockaddr_in *Addr) { int i; char IPAddress[MAXIP]; bzero(Addr, sizeof(*Addr)); Addr->sin_family = AF_INET; for ( i = 0; Composite[i] != ':' && Composite[i] != 0 && i < MAXIP; i++ ) IPAddress[i] = Composite[i]; IPAddress[i] = 0; if ( Composite[i] == ':' ) Addr->sin_port = htons(atoi(Composite+i+1)); else Addr->sin_port = 0; if ( *IPAddress == 0 ) { Addr->sin_addr.s_addr = INADDR_ANY; return 0; } else return ( inet_aton(IPAddress, &Addr->sin_addr) == 0 ); } /*--------------------------------------------------------------------*/ /* main */ /* */ /* Open socket, connect and receive messages */ /*--------------------------------------------------------------------*/ int main(int Count, char *Strings[]) { int sd; struct sockaddr_in addr; if ( Count < 3 || Count > 4 ) { printf("usage: coupled-peer []\n"); exit(0); } if ( (sd = socket(PF_INET, SOCK_DGRAM, 0)) < 0 ) { perror("Socket"); exit(errno); } if ( SetAddress(Strings[1], &addr) != 0 ) { perror(Strings[1]); exit(errno); } if ( bind(sd, (struct sockaddr *)&addr, sizeof(addr)) != 0 ) { perror("Bind"); exit(errno); } if ( SetAddress(Strings[2], &addr) != 0 ) { perror(Strings[2]); exit(errno); } if ( connect(sd, (struct sockaddr *)&addr, sizeof(addr)) != 0 ) { perror("Connect"); exit(errno); } if ( Count == 4 ) send(sd, Strings[3], strlen(Strings[3]), 0); while (1) { int bytes_read; bzero(buffer, sizeof(buffer)); bytes_read = recv(sd, buffer, sizeof(buffer), 0); if ( bytes_read > 0 ) { printf("Msg: %s\n", buffer); sleep(1); send(sd, buffer, bytes_read, 0); } } close(sd); return 0; }

SAMPLE INPUT OUTPUT:

$ gcc peer.c -o peer.exe

$ peer.exe 127.0.0.1:5000 127.0.0.1:5000 hai
Msg: hai

 
SLogix Student Projects

⇓Student Projects⇓
⇑Student Projects⇑
bottom