Skip to main content

UDP echo server, client

udpserver.c


#include "stdio.h"
#include "stdlib.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "arpa/inet.h"
#include "netinet/in.h"
#include "string.h"
#define SA struct sockaddr
#define MAX 1024

int main(int argc,char** argv) {
    int sockfd,n;
    socklen_t len;
    struct sockaddr_in servaddr,cliaddr;
    char buff[MAX],tmp[MAX];

    //create socket
    sockfd = socket(AF_INET,SOCK_DGRAM,0);
    //fill socket
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(atoi(argv[1]));
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);

    //bind
    bind(sockfd,(SA*)&servaddr,sizeof(servaddr));

    for(;;) {
    bzero(buff,sizeof(buff));
    len = sizeof(cliaddr);
    n=recvfrom(sockfd,buff,MAX,0,(SA*)&cliaddr,&len);
    strcpy(tmp,buff);
    printf("received : %s",tmp);
    if(n < 6) 
    {
        perror("send message");
        exit(0);
    }
    sendto(sockfd,tmp,MAX,0,(SA*)&cliaddr,len);
    bzero(buff,sizeof(buff));
           }
    close(sockfd);
    return 0;
}
    
udpclient.c


#include "stdio.h"
#include "stdlib.h"
#include "sys/types.h"
#include "sys/socket.h"
#include "arpa/inet.h"
#include "netinet/in.h"
#include "string.h"
#define SA struct sockaddr
#define MAX 1024

int main(int argc,char** argv) {
    int sockfd,n;
    socklen_t len;
    struct sockaddr_in servaddr;
    char buff[MAX];

    //create socket
    sockfd = socket(AF_INET,SOCK_DGRAM,0);

    //fill struct 
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(atoi(argv[1]));
    servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");

    //send to server
    printf("enter message\n");
    for(;;) {
    bzero(buff,sizeof(buff));
    fgets(buff,MAX,stdin);
    len=sizeof(servaddr);
    sendto(sockfd,buff,MAX,0,(SA*)&servaddr,len);
    bzero(buff,sizeof(buff));
    recvfrom(sockfd,buff,MAX,0,(SA*)&servaddr,&len);
    printf("%s",buff);
    }
    close(sockfd);
    return 0;
}

Comments

Popular posts from this blog

கட்டற்றமென்பொருள் பற்றிய மாத மின்இதழ்

உலகெங்கிலும் உள்ள தமிழ் மக்களுக்கு கணினிதொழில்நுட்பத்தை பற்றி அறிமுகம் செய்யும் கணியம் என்ற புதிய மாத மின்னிதழை வெளியிடுவதில் பெருமகிழ்ச்சி அடைகிறோம். கணினி கற்க ஆங்கிலம் தடையாக இருந்த காலம் மாறி தொழில்னுட்பங்கள் யாவும் தமிழில் பெருகும் இந்த காலத்தில் மென்பொருள் பற்றிய நுட்பங்களை தமிழில் வழங்குவதில் பெருமை கொள்கிறோம். இந்த இதழின் கட்டுரைகள் : கட்டற்ற மென்பொருள் லினக்ஸ் பயனர் குழு – ஓர் அறிமுகம் உபுண்டு நிறுவுதல்

ரிதம்பாக்ஸில் ரேடியோ மிர்ச்சி

உபுண்டு 12.04ல் bansheeயை தூக்கிவிட்டு மறுபடியும் rhythmbox default இசைப்பானாக இடம்பெற்றுள்ளது. ரிதம்பாக்ஸ்ல் bansheeயை விட பல அம்சங்கள் குறைவுதான். ஏன் banshee ஐ எடுத்தார்கள் என்று  சரியாக புரியவில்லை. என்னதான் high-bitrateல் பாடல்கள் இருந்தாலும் fm கேட்பது ஒரு மகிழ்ச்சிதான். சில வருடங்களுக்கு முன்பு எங்கள் தெருக்களில் சூரியன் fm, ரேடியோ மிர்ச்சி போன்றவை தான் என்னை எழுப்பும்.

ARP/RARP full simulation program

server.c #include "stdio.h" #include "stdlib.h" #include "string.h" #include "sys/types.h" #include "sys/socket.h" #include "arpa/inet.h" #include "netinet/in.h" #define SA struct sockaddr struct IPmac { char ip[100]; char mac[100]; }; int main() { int sockfd,len,i; struct sockaddr_in servaddr; char buff[30],temp[30],ip[30],mac[30];