+#define _Noreturn
+
namespace net;
#include <stdarg.h>
#define String _String
#include <winsock.h>
#undef String
-static WSADATA wsaData;
+#define SOCKLEN_TYPE int
#elif defined(__unix__) || defined(__APPLE__)
default:
+#define SOCKLEN_TYPE socklen_t
#define set _set
#define uint _uint
#include <sys/time.h>
import "network"
+#ifdef __ANDROID__
+// TOFIX:
+#undef ntohs
+#undef htons
+#define ntohs(x) (x)
+#define htons(x) (x)
+#endif
+
#define GETLEDWORD(b) (uint32)(((b)[3] << 24) | ((b)[2] << 16) | ((b)[1] << 8) | (b)[0])
#define PUTLEDWORD(b, d) \
{
SOCKET s;
SOCKADDR_IN a;
- int addrLen = sizeof(a);
+ SOCKLEN_TYPE addrLen = sizeof(a);
value.accepted = true;
s = accept(value.s,(SOCKADDR *)&a, &addrLen);
get { return this ? service : null; }
};
- property char * inetAddress { get { return (char *)inetAddress; } };
+ property const char * inetAddress { get { return (char *)inetAddress; } };
property int inetPort { get { return inetPort; } }
property Socket next { get { return next; } };
property bool connected { get { return _connected == 1 || _connected == -2; } };
virtual void OnDisconnect(int code);
virtual void OnReceivePacket(Packet packet);
- bool Connect(char * address, int port)
+ bool Connect(const char * address, int port)
{
bool result = false;
#if defined(__WIN32__) || defined(__unix__) || defined(__APPLE__)
}
// --- Transfer ---
- bool Send(void * buffer, int size)
+ bool Send(const void * buffer, int size)
{
#if defined(__WIN32__) || defined(__unix__) || defined(__APPLE__)
if(this)
return false;
}
- bool SendString(char * string)
+ bool SendString(const char * string)
{
return Send(string, (int)strlen(string));
}
- bool Sendf(char * format, ...)
+ bool Sendf(const char * format, ...)
{
bool result;
va_list args;
return result;
}
- bool DatagramConnect(char * sendAddress, int port)
+ bool DatagramConnect(const char * sendAddress, int port)
{
SOCKET s = socket(AF_INET,SOCK_DGRAM,0);
if(s != -1)
virtual int ReceiveData(byte * buffer, int count, uint flags)
{
- return (int)recv(s, buffer, count, flags);
+ return (int)recv(s, (char *)buffer, count, flags);
}
- virtual int SendData(byte * buffer, int count, uint flags)
+ virtual int SendData(const byte * buffer, int count, uint flags)
{
- return (int)send(s, buffer, count, flags);
+ return (int)send(s, (const char *)buffer, count, flags);
}
virtual bool OnEstablishConnection(int s);
network.mutex.Release();
}
- bool _Connect(SOCKET s, char * address, int port)
+ bool _Connect(SOCKET s, const char * address, int port)
{
bool result = false;
if(this)
count = ReceiveData(recvBuffer + recvBytes, recvBufferSize - recvBytes, 0);
else
{
- int len = sizeof(a);
- count = (int)recvfrom(s, recvBuffer + recvBytes,
+ SOCKLEN_TYPE len = sizeof(a);
+ count = (int)recvfrom(s, (char *)recvBuffer + recvBytes,
recvBufferSize - recvBytes, 0, (SOCKADDR *)&a, &len);
strcpy(inetAddress, inet_ntoa(this.a.sin_addr));
inetPort = ntohs((uint16)a.sin_port);