Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-03-26 18:10:17 +0000
committerStijn Buys <ingar@osirion.org>2008-03-26 18:10:17 +0000
commit2b9f068e7ee4c0d249c715f9eb5a3c2c8a11e6f8 (patch)
treefcd373f97385dc150437bc09b2143e0ceee589e1 /src/core/netserver.cc
parenta29aa1ee2935857f616351a23578311f514516d4 (diff)
win32 updates
Diffstat (limited to 'src/core/netserver.cc')
-rw-r--r--src/core/netserver.cc19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/core/netserver.cc b/src/core/netserver.cc
index 3b17a65..e3e01a3 100644
--- a/src/core/netserver.cc
+++ b/src/core/netserver.cc
@@ -7,12 +7,16 @@
#include <unistd.h>
#include <errno.h>
+#ifndef _WIN32
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netinet/in.h>
#include <arpa/inet.h>
+#else
+#include <windows.h>
+#endif
#include <iostream>
#include <sstream>
@@ -25,6 +29,10 @@
#include "core/func.h"
#include "core/core.h"
+#ifdef _WIN32
+ typedef int socklen_t;
+#endif
+
namespace core
{
@@ -43,7 +51,8 @@ NetServer::NetServer(std::string const host, unsigned int const port)
//perror("socket");
return;
}
-
+
+ /*
// set socket options
socklen_t yes = 1;
if (::setsockopt(netserver_fd,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(socklen_t)) == -1) {
@@ -51,6 +60,7 @@ NetServer::NetServer(std::string const host, unsigned int const port)
//perror("setsockopt");
return;
}
+ */
// Get the local adress to bind to
netserver_addr.sin_family = AF_INET;
@@ -77,8 +87,11 @@ NetServer::NetServer(std::string const host, unsigned int const port)
// add the listening socket to the file descriptor set
FD_ZERO(&serverset);
+#ifdef _WIN32
+ FD_SET((unsigned int) netserver_fd, &serverset);
+#else
FD_SET(netserver_fd, &serverset);
-
+#endif
netserver_error = false;
}
@@ -173,7 +186,7 @@ void NetServer::receive()
while (nb && FD_ISSET(fd(), &readset)) {
// receive incoming data
- struct sockaddr_in client_addr;
+ struct sockaddr_in client_addr;
socklen_t client_addr_len = sizeof(client_addr);
memset(recbuf, '\0', sizeof(recbuf));
ssize_t bytes_received = ::recvfrom(fd(), recbuf, FRAMESIZE-1, 0, (struct sockaddr *)&client_addr, &client_addr_len);