#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <memory.h>
int main(int argc,char * argv[])
{
if(argc < 3)
{
printf("usage: %s ip port\n",argv[0]);
exit(1);
}
/*步骤1 创建socket*/
int sockfd = socket(AF_INET,SOCK_DGRAM,0);
if(sockfd < 0)
{
perror("socket error");
exit(1);
}
/*步骤2 调用recvfrom和sendto等函数和服务器端双向通信*/
struct sockaddr_in serveraddr;
memset(&serveradd,0,sizeof(serveraddr));
serveraddr.sin_family = AF_INET;
serveraddr.sin_port = htons(atoi(argv[2]));
inet_pton(AF_INET,argv[1],&serveraddr.sin_addr.s_addr);
char buffer[1024] = "hello iotek";
//向服务器发送数据报文
if(sendto(sockfd,buffer,sizeof(buffer),0,
(struct sockaddr*)&serveraddr),sizeof(serveraddr) < 0)
{ perror("sendto error");
exit(1);
}
else
{
//接受服务器端发送的数据报文
memset(buffer,0,sizeof(buffer));
if(recv(sockfd,buffer,sizeof(buffer),0) < 0)
{
perror("recv error");
exit(1);
}
else
{
printf("%s",buffer);
}
}
close(sockfd);
}
转载于:https://www.cnblogs.com/lvdh1314/p/6504447.html