![]() |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Спасибо за совет.Действительно, глаза хотят а руки боятся.Просто я думал, что можно простой сервер написать в строк 7,но видел здесь примерчик что он как то в Типах и все такое.Нет описания на русском операторов связаных с сетью,что бы понять что за что отвечает.Если бы было,мне бы стало проще.Хелп на английском,может у меня и версия BlitzMax-а низкая ( 1.45 ) Начну стараться и грызть науку.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
BlitzMax\samples\mak\gnetchat.bmx И в этой же папке: BlitzMax\samples\mak\gnetdemo.bmx Второй особенно интересен. Код немного сложноват, но для экспериментов пойдёт. В примерах используется стандартная библиотека gnet, она не очень производительна, но для простеньких игр и экспериментов подходит замечательно. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Мне стыдно,но я полный нуль в этом.Почему не подключается клиент к серверу
сервер: Strict Import BRL.GNet Global port=50000 Global host:TGNetHost=CreateGNetHost:TGNetHost() GNetListen( host,port ) While Not KeyHit( KEY_ESCAPE ) Wend клиент: Import BRL.GNet Global port=50000 SeedRnd MilliSecs() Global host:TGNetHost=CreateGNetHost:TGNetHost() f=GNetConnect(host,"127.0.0.1",port) Print f подскажите направление моей тупости. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
пожалуйста,напишите в 5 строчках создание серва и создание клиента.Как узнать полключился клиент к серву или нет?
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
GNetSync(host) в цикле сервера.
Эта ф-ция - обработчик сервера. Если её не вызывать он и работать не будет. Не забывай после работы закрывать соединения! Иначе можно получить кучу багов из-за открытых остаточных соединений (см. порт занят). |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Огромное спасибо!!! С GNetSync(host) клиент сразу подключился.Я немного буду задавать глупые для Вас вопросы,но хотел бы получать взамен полезные ответы для себя.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Подключится,подключился,но передать данные зи клиента на сервер неполучается.Подскажите какую команду еще забыл..
сервер: Import BRL.GNet Global port=50000 SeedRnd MilliSecs() Global host:TGNetHost=CreateGNetHost:TGNetHost() Global me:TGNetObject=CreateGNetObject:TGNetObject(host) GNetListen( host,port ) While Not KeyHit( KEY_ESCAPE ) GNetSync(host) If Not me Print GetGNetString$(me,0) Wend CloseGNetHost (host) клиент : Import BRL.GNet Global port=50000 Global add$="127.0.0.1" Global host:TGNetHost=CreateGNetHost:TGNetHost() Global me:TGNetObject=CreateGNetObject:TGNetObject( host ) If GNetConnect(host,add,port) SetGNetString (me,0,"Ready") EndIf CloseGNetHost (host) |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Cообщения, что на сервере, что на клиенте обрабатываем так:
Код:
For Local obj:TGNetObject=EachIn GNetObjects( host ) Цитата:
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
как правильно понять эту ошибку - Unhandled Exception: Assert failed
необработанное исключение ? Это вылетает когда обрабатываю сообщения на сервере. |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
провел 5 часов не вставая из-за компа,выпил 3 бокала чая,но так и не смог передать от клиента серверу данные.Пробывал понять как устроен на сокетах сервер и тоже упирался в тупик.Не хочу на Blitz3d там 2d графика плохо реализованна, а Fastimage с ключем нет.Хочу понять здесь сеть,но нервы начинают сдавать.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Вложений: 2
Я когда-то делал простенький клиент-сервер на максе, на основе TCP.
Суть: 1. клиенты представляют из себя движущиеся объекты (в пределах экрана) 2. сервер должен следить за перемещениями этих объектов, отображая всех на экране Данные от клиентов передаются 1 раз в секунду, можно изменить "timeSendPosInterval = 1000". Клиенты могут отправлять текстовую инфу серверу, она отобразится в поле "info". Подключение происходит на локальный адрес, можно изменить: "remoteIp = HostIp("127.0.0.1")". По умолчанию порт для подключения 50000, при наличии файла port.txt в корне с exe-шниками - порт загружается оттуда. Примечание: для получения русских символов есть простецкий конвертер в файле utils.bmx. Запуск: 1. запустить tcpServer 2. запустить tcpClient один или несколько раз tcpClient.bmx tcpClient.bmx utils.bmx Прилагаю код и скомпиленные файлы. ПС: Возможно, стоит оформить этот пост в раздел "FAQ и уроки". |
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Твой урок у меня уже есть и я его разбирал.Но возникали проблемы,все равно сервер не получает значения.Вопрос: Сервер обязательно должен быть сделан на основе Типов? Мне главное понять работу сокетов.Другой вопрос,как запустить несколько клиентов на одной машине?При запуске 2 клиента пишет ошибка и не запускается.
|
Ответ: Вопрос-Ответ (для новичков BlitzMax)
Клиент должен знать ip адрес сервера и порт. Ошибка в клиенте будет только если сервер не запущен.
Какая конкретно ошибка возникает? Кинь весь код, посмотрю. |
Часовой пояс GMT +4, время: 06:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot