// server_socket.c
#include <unistd.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>
#define SERVER_PORT 6666
int main()
{
int socketfd;
int ret;
int RecvLen;
char RecvBuff[256];
char SendBuff[256];
struct sockaddr_in ser_addr, client_addr;
socketfd = socket(AF_INET, SOCK_DGRAM, 0);
if (0 > socketfd)
{
printf("can't create socket\n");
return -1;
}
memset(&ser_addr, 0, sizeof(struct sockaddr_in));
ser_addr.sin_family = AF_INET;
ser_addr.sin_addr.s_addr = htonl(INADDR_ANY);
ser_addr.sin_port = htons(SERVER_PORT);
ret = bind(socketfd, (struct sockaddr *)&ser_addr,sizeof(struct sockaddr));
if (0 > ret)
{
printf(" Bind fail\n");
return -1;
}
int AddrLen = sizeof(struct sockaddr);
while(1)
{
memset(RecvBuff, 0, sizeof(RecvBuff));
RecvLen = recvfrom(socketfd, RecvBuff, sizeof(RecvBuff), 0,
(struct sockaddr *)&ser_addr, &AddrLen);
printf("recv: %s\n",RecvBuff);
memset(SendBuff, 0, sizeof(SendBuff));
printf("server-> :");
gets(SendBuff);
sendto(socketfd, SendBuff, sizeof(SendBuff), 0, (struct sockaddr*)
&ser_addr, sizeof(struct sockaddr));
}
close(socketfd);
return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//client_socket.c
#include <unistd.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>
#define SERVER_PORT 6666
int main()
{
int socketfd;
int ret;
int RecvLen = 0;
char RecvBuff[256];
char SendBuff[256];
struct sockaddr_in ser_addr, client_addr;
socketfd = socket(AF_INET, SOCK_DGRAM, 0);
if (0 > socketfd)
{
printf("can't create socket\n");
return -1;
}
memset(&ser_addr, 0, sizeof(struct sockaddr_in));
client_addr.sin_family = AF_INET;
client_addr.sin_addr.s_addr = htonl(INADDR_ANY);
client_addr.sin_port = htons(SERVER_PORT);
memset(SendBuff, 0, sizeof(SendBuff));
memcpy(SendBuff, "hello word!\n", 100);
sendto(socketfd, SendBuff, sizeof(SendBuff), 0, (struct sockaddr *)
&client_addr, sizeof(struct sockaddr));
int AddrLen = sizeof(struct sockaddr);
while(1)
{
memset(RecvBuff, 0, sizeof(RecvBuff));
RecvLen = recvfrom(socketfd, RecvBuff, sizeof(RecvBuff), 0,
(struct sockaddr *)&client_addr, &AddrLen);
printf("recv: %s\n",RecvBuff);
memset(&SendBuff, 0, sizeof(SendBuff));
printf("client-> :");
gets(SendBuff);
sendto(socketfd, SendBuff, sizeof(SendBuff), 0, (struct sockaddr *)
&client_addr, sizeof(struct sockaddr));
}
close(socketfd);
return 0;
}