void sendOspfPacket(char *interface, char *destIP, char *ospfPacket, int packetLength)
{
	int socketfd;
	struct sockaddr_in ospfServer; 

    ospfServer.sin_family = AF_INET;
	ospfServer.sin_addr.s_addr = inet_addr (destIP);

	printf("Sending OSPF Packet to interface = %s Dest = %s, Length=%d \n", interface, destIP, packetLength);
	
	// Create a raw socket with OSPF Protocol
	socketfd = createRawSocket(interface);

	// Send ospf packet to destination with IP destIP received as argument
	if (sendto (socketfd, ospfPacket, packetLength,  0, (struct sockaddr *) &ospfServer, sizeof (ospfServer)) < 0)
       	perror("sendto failed");
	else
       	printf ("OSPF Packet Sent .....\n\n\n");

	close(socketfd);

	// Print the contents of ospf packet sent
	int i=0;
	for(i=0;i<packetLength;i++)
		printf("0x%02X ", ospfPacket[i]);		
		printf("\n");
}
示例#2
0
int main(){
	rsfd=createRawSocket(55);
    
    char msg[25];
    sprintf(msg, "%s", "This is message!!");
    int l=strlen(msg);
    msg[l]='\0';

    char optional[25];
    sprintf(optional, "%s", "This is optional!!");
   	l=strlen(optional);
    optional[l]='\0';

    char datagram[BUFF];
    createPacket(datagram, msg, optional);

    sendPacket(datagram);

    return 0;
}
示例#3
0
int main(int argc, char* argv[]){
	signal(SIGUSR1, handle);

	printf("pid: %d\n", getpid());
	
	init();
	
	int i;
	for(i=0; i<pnum; i++)
		cpid[i]=atoi(argv[2+pnum+i]);

	for(i=0; i<pnum; i++)
		usfd[i]=connect_to_unix(argv[2+i]);

	sfd=createSocket(atoi(argv[1]));
	
	rsfd=createRawSocket(55);

	start();
}