udp
服务器:udpsrv.c
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<strings.h>
#include<string.h>
#include<arpa/inet.h>
int main(int argc, char **argv)
{
 int sockfd; 
 socklen_t addrlen;
 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
 struct sockaddr_in my_addr, cli_addr;
 bzero(&my_addr, sizeof my_addr);
 my_addr.sin_family = AF_INET;
 my_addr.sin_port = htons(atoi(argv[1]));
 my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
 bind(sockfd, (struct sockaddr *)&my_addr, sizeof(my_addr));
 
 char buf[80];
 while(1){
  bzero(buf, 80);
  addrlen = sizeof(cli_addr);
  recvfrom(sockfd, buf, 79, 0,
    (struct sockaddr *)&cli_addr, &addrlen);
  fputs(buf, stdout);
  sendto(sockfd, buf, strlen(buf), 0,
    (struct sockaddr *)&cli_addr, addrlen);
 }
 close(sockfd);
 return 0;
}
客服端:udpcli.c
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netinet/ip.h>
#include<strings.h>
#include<string.h>
#include<arpa/inet.h>
int main(int argc, char **argv)
{
 int sockfd;
 sockfd = socket(AF_INET, SOCK_DGRAM, 0);
 struct sockaddr_in my_addr;
 bzero(&my_addr, sizeof my_addr);
 my_addr.sin_family = AF_INET;
 my_addr.sin_port = htons(atoi(argv[2]));
 my_addr.sin_addr.s_addr = inet_addr(argv[1]);
 char buf[80];
 socklen_t addrlen;
 addrlen = sizeof(my_addr);
 while(1){
  bzero(buf, 80);
  printf("pls input: ");
  fgets(buf, 80, stdin);
  sendto(sockfd, buf, strlen(buf), 0,
    (struct sockaddr *)&my_addr, sizeof(my_addr));
  bzero(buf,80);
  recvfrom(sockfd, buf, 79, 0,
    (struct sockaddr *)&my_addr, &addrlen);
  printf("buf: %s\n", buf);
 }
 close(sockfd);
 return 0;
}
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
