Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 27.05.2015, 20:29   #1
Okay
Знающий
 
Регистрация: 20.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
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()
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 05:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com