Всем привет.
Пытаюсь связать свою игру с удаленным сервером (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 клиент успешно коннектится к локальному серверу на этом же компе.
привет.
я делал так в классе игры:
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
Привет!
А пробовал этот код с удаленным серваком?
Не пойму в каком порядке тут что вызывается.
Сначала resolve преобразует "localhost" в "127.0.0.1"
Затем вызовется событие Resolved
Тут же в Resolved биндится порт и вызывается Open
А после этого событие Opened?
Сервер должен увидеть клиента после вызова Open, так?
============================================================
pal_vic
Опробовал твой код. Спасибо огромное, он работает. Я пока не понял в чем разница с тем что я писал, но пока что и не суть важно. Благодарю!
Тема в архиве.