forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Sockets, Websockets.. (http://forum.boolean.name/showthread.php?t=19852)

Okay 27.05.2015 23:29

Sockets, Websockets..
 
использую движок Unreal Engine 4. Делаю Билд под HTML5 и возникает проблема с подключением к серверу через WebSockets. Сервер видит подключение, но функция socket возвращает -1 почему-то
Клиент подключение:
Код:

void UWebSocket::Connect(const FInternetAddr &ServerAddress, FString getAddr, int32 getPort)
{
#if PLATFORM_HTML5_BROWSER

        struct sockaddr_in addr;
        int res;

        SockFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (SockFD == -1)
        {
                GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Failed create!"));
                return;
        }
        else
        {
                GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Green, TEXT("Socket created: ") + FString::FromInt(SockFD));
        }

        fcntl(SockFD, F_SETFL, O_NONBLOCK);

        memset(&addr, 0, sizeof(addr));
        addr.sin_family = AF_INET;
        addr.sin_port = htons(ServerAddress.GetPort());

        if (inet_pton(AF_INET, TCHAR_TO_ANSI(*ServerAddress.ToString(false)), &addr.sin_addr) != 1)
        {
                GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Failed inet_pton"));
                return;
        }

        Ret = connect(SockFD, (struct sockaddr *)&addr, sizeof(addr));
        if (Ret < 0)
        {
                GEngine->AddOnScreenDebugMessage(10, 5.f, FColor::Red, "Don't Connect");
                GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Socket: ") + FString::FromInt(Ret));
                return;
        }
        else
        {
                GEngine->AddOnScreenDebugMessage(13, 5.f, FColor::Green, "Connect " + getAddr + ":" + FString::FromInt(getPort));
                GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT("Socket: ") + FString::FromInt(Ret));
        }
       

#endif
}

Сервер:
Код:

import tornado.web
import tornado.websocket
import tornado.ioloop

clients = 0
ID = 0

class WebSocketHandler(tornado.websocket.WebSocketHandler):
        def check_origin(self, origin):
                return True

        def open(self):
                print "New client connected"
                #self.write_message("You are connected")
                global clients
                clients = clients + 1
                print clients

        def on_message(self, message):
                self.write_message(message)
                print message


        def on_close(self):
                print "Client disconnected"


application = tornado.web.Application([(r"/", WebSocketHandler),])
if __name__ == "__main__":
        application.listen(7777)
        tornado.ioloop.IOLoop.instance().start()



Часовой пояс GMT +4, время: 14:56.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot