NWN2-AI-Server/TestingAI.d

46 lines
924 B
D

#!dmd -run
import core.thread;
import std.stdio;
import std.socket;
import std.conv;
import std.utf;
import std.string;
string receiveWait(Socket sock){
bool blocking = sock.blocking;
sock.blocking = false;
ubyte[] rawData;
ubyte[256] buf;
int recv;
while((recv = sock.receive(buf))>=0 || rawData.length==0){
if(recv>0){
rawData ~= buf[0..recv];
}
Thread.sleep(dur!"msecs"(10));
}
sock.blocking = blocking;
return (cast(char*)rawData.ptr).fromStringz.to!string;
}
void sendWait(Socket sock, string data){
bool blocking = sock.blocking;
sock.blocking = true;
sock.send(data.toUTF8);
sock.blocking = blocking;
}
void main() {
writeln("Start");
auto sock = new TcpSocket;
sock.blocking = true;
sock.connect(new InternetAddress("127.0.0.1", 8080));
writeln("Connected");
sock.sendWait(`{"action":"bind","target":"testnpc"}`);
writeln(sock.receiveWait);
sock.shutdown(SocketShutdown.BOTH);
}