#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define SIZE 100
#define IP "127.0.0.1"
#define PORT 10086
int main()
{
int socketID = 0;
int addrLength = 0;
int ret = 0;
char buf[SIZE] = {0};
struct sockaddr_in addr;
socketID = socket(AF_INET, SOCK_DGRAM, 0);
if (socketID < 0)
{
perror("socket error");
return -1;
}
printf("socket ok\r\n");
addrLength = sizeof(addr);
memset(&addr, 0, addrLength);
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(IP);
fgets(buf, SIZE - 1, stdin);
ret = sendto(socketID, buf, strlen(buf) - 1, 0, (struct sockaddr *)&addr, addrLength);
if (ret > 0)
{
printf("client send ok\r\n");
}
memset(buf, 0, SIZE);
ret = recvfrom(socketID, buf, SIZE - 1, 0, (struct sockaddr *)&addr, &addrLength);
if (ret > 0)
{
printf("client get :%s, from %d\r\n", buf, ntohs(addr.sin_port));
}
close(socketID);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define IP "127.0.0.1"
#define PORT 10086
#define SIZE 100
int main()
{
int socketID = 0;
int ret = 0;
int on = 1;
int addrLength = 0;
char buf[SIZE] = {0};
struct sockaddr_in addr;
socketID = socket(AF_INET, SOCK_DGRAM, 0);
if (socketID < 0)
{
perror("socket error");
return -1;
}
setsockopt(socketID, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
printf("socket ok\r\n");
addrLength = sizeof(addr);
memset(&addr, 0, addrLength);
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = INADDR_ANY;
ret = bind(socketID, (struct sockaddr *)&addr, addrLength);
if (ret < 0)
{
perror("bind error");
close(socketID);
return -1;
}
printf("bind ok\r\n");
ret = recvfrom(socketID, buf, SIZE - 1, 0, (struct sockaddr *)&addr, &addrLength);
if (ret > 0)
{
printf("server get : %s, port=%d\r\n", buf, ntohs(addr.sin_port));
}
fgets(buf, SIZE - 1, stdin);
ret = sendto(socketID, buf, strlen(buf) - 1, 0, (struct sockaddr *)&addr, addrLength);
if (ret > 0)
{
printf("server send ok\r\n");
}
close(socketID);
return 0;
}