#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <sys/types.h>
#include <dirent.h>
#include <stddef.h>
#include <time.h>
//#include "common.h"
int main()
{
int fd=socket(AF_INET,SOCK_DGRAM,0);
if(fd<0)
{
printf("error \n");
}
char buffer[1024]={0};
struct sockaddr_in dest_addr;
bzero(&dest_addr,sizeof(dest_addr));
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(9999);//指点对端端口
//unsigned int addr;
//inet_pton(AF_INET,"192.168.116.1",&addr);
inet_pton(AF_INET,"127.0.0.1",&dest_addr.sin_addr);
//dest_addr.sin_addr.s_addr=addr;
while(1)
{
fgets(buffer,1024,stdin);
sendto(fd,buffer,strlen(buffer),0,(struct sockaddr*)&dest_addr,sizeof(dest_addr));
}
close(fd);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <sys/types.h>
#include <dirent.h>
#include <stddef.h>
#include <time.h>
int main()
{
//创建socket
int fd=socket(AF_INET,SOCK_DGRAM,0);
if(fd<0)
{
printf("socket error\n");
//err_sys("socket error\n");
}
//指定本地地址结构
struct sockaddr_in my_addr;
bzero(&my_addr,sizeof(my_addr));
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(9999);//指定本机用于绑定的端口号
my_addr.sin_addr.s_addr=htons(INADDR_ANY);//指定本机用于绑定的ip地址为任意ip
//绑定
int ret;
ret=bind(fd,(struct sockaddr*)&my_addr,sizeof(my_addr));
if(ret!=0)
{
printf("bind error");
}
printf("receive data...\n");
while(1)
{
int recv_len;
char recv_buf[512]={0};
struct sockaddr_in client_addr;
char cli_ip[INET_ADDRSTRLEN]="";
socklen_t cliaddr_len=sizeof(client_addr);
recv_len=recvfrom(fd,recv_buf,sizeof(recv_buf),0,(struct sockaddr*)&client_addr,&cliaddr_len);
inet_ntop(AF_INET,&client_addr.sin_addr,cli_ip,INET_ADDRSTRLEN);
printf("\nip:%s,port:%d\n",cli_ip,ntohs(client_addr.sin_port));
printf("data(%d):%s\n",recv_len,recv_buf);
}
close(fd);
return 0;
}