© 2012 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies
« NS2  Projects »

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