UDKФорум

UDK клиент не коннектится к удаленному серверу

#0
16:24, 16 янв 2013

Всем привет.

Пытаюсь связать свою игру с удаленным сервером (VPS). Использую класс TCPLink.

function Connect()
{
    local int BindedPort;
    local string MyString;
    
    Addr.Port = TargetPort;
    MyTCPLink.StringToIpAddr(TargetHost, Addr);

    BindedPort = MyTCPLink.BindPort(TargetPort, true);
    `log("BindedPort" @ BindedPort);

    bOnline = MyTCPLink.Open(Addr);
    
    `log("bOnline = " $ bOnline);
    
    MyString = MyTCPLink.IpAddrToString(Addr);
    `log(MyString);
}

При вызове этой функции статус соединения виснет на STATE_Connecting вместо STATE_Connected. Open возвращает true. Лог спамится этим сообщением.

Изображение

При этом - простое конскольное приложение успешно связывается с серверов, а UDK клиент успешно коннектится к локальному серверу на этом же компе.

#1
18:30, 16 янв 2013

привет.
я делал так в классе игры:

mTcp = spawn(class'ACLTcpLinkClient');
mTcp.TargetHost = ServerConfig.Host;
 `log("my host :" @ ServerConfig.Host);
mTcp.TargetPort = ServerConfig.Port;
`log("my port :" @ ServerConfig.Port);
 mTcp.connect();

ACLTcpLinkClient.uc

+ Показать
#2
19:42, 16 янв 2013

Привет!

А пробовал этот код с удаленным серваком?

Не пойму в каком порядке тут что вызывается.

Сначала resolve преобразует "localhost" в "127.0.0.1"

Затем вызовется событие Resolved
Тут же в Resolved биндится порт и вызывается Open

А после этого событие Opened?

Сервер должен увидеть клиента после вызова Open, так?


============================================================


pal_vic
Опробовал твой код. Спасибо огромное, он работает. Я пока не понял в чем разница с тем что я писал, но пока что и не суть важно. Благодарю!

#3
11:22, 17 янв 2013

пожалуйста, я брал пример из сайта статья  пример

UDKФорум

Тема в архиве.