ultimatepp/uppdev/UdpServer/UdpServer.cpp
cxl 351994a6cc Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

42 lines
1 KiB
C++

#include <Core/Core.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/in.h>
#include <arpa/inet.h>
using namespace Upp;
CONSOLE_APP_MAIN
{
// WSADATA wsaData;
// WSAStartup(MAKEWORD(2,2), &wsaData);
int srvskt = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in srvadr;
srvadr.sin_family = AF_INET;
srvadr.sin_port = htons(2345);
srvadr.sin_addr.s_addr = INADDR_ANY;
bind(srvskt, (sockaddr *) &srvadr, sizeof(srvadr));
int replyskt = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
for(;;) {
fd_set file_set;
timeval time_out;
FD_ZERO(&file_set);
FD_SET(srvskt, &file_set);
time_out.tv_sec = 1; /* set to 1 sec */
time_out.tv_usec = 0;
char h[512];
char cladr[256];
socklen_t cladrsz = 256;
if(select(srvskt + 1, &file_set, NULL, NULL, &time_out) > 0) {
if(recvfrom(srvskt, &h, 512, 0, (sockaddr *)cladr, &cladrsz) > 0) {
sendto(replyskt, &h, 512, 0, (sockaddr *)cladr, cladrsz);
// Cout() << "Recieved PING\n";
}
}
}
// WSACleanup();
}