[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Debugging
gforcerДата: Пятница, 04 Декабря 2009, 16:12 | Сообщение # 1
Начинающий
Группа: Участники
Сообщений: 156
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: несколько
Проектов: РТС, Рейсинг, ФПС
Привет. Программистов попрошу помочь с проверкой правильности и работоспособности:

Code


strStream=AcceptTCPStream(Server)
If strStream=True Then
StreamMsg$=ReadString$(strStream)
Print StreamMsg$
TranslateMsg();Анализируем и принимаем решение в соответсвии с Msg
Else

End If

Function TranslateMsg();Функция обработки сообщений
Select StreamMsg$
Case "newMap";Созданна еще одна игра
;Сервер получает:
;Ip, порт, название карты
IP$=ReadString(strStream)
Port=ReadInt(strStream)
mapName$=ReadString(strStream)
maxPlayers=ReadInt(strStream)
currentPlayers=Rea  dInt(strStream)
addGameSession(IP$,Port,mapName$,maxPlayers,currentPlayers)
Case "deleteMap";Игра окончена, удалить игру из сервера
;Нужно получить:
;IP игры, которая завершена
;Сервер сам будет сканировать игры на состояния
Case "getServerVersion";Выдать клиенту версию сервера
;Вернуть информацию в виде
;serverVersion$
Case "getGames";Передать клиенту текущие игровые сессии
;Сначала нада передать количество известных игр
;Потом через цикл For i=1 to число игр
;Передать IP, Порт, Название, ЧилоИграющих/МаксИграющихНаКарту
;Если такой карты с таким названием нет у клиента, то . . .
End Select
End Function

Вопрос в следующем:
Можно свободно использовать поток (Stream) в других функциях без последствий, типа потери данных или нарушения структуры.
Вопрос №2:

Как бы сделать, что когда нада передать в поток данные с сервера, поток не нарушился.
Например из потока получил msg что надо отправить на такой-то ip такую то серию данных. Сервер их передал сразу после прочтения строки с таким запросом.
В итоге скорее всего данные нарушаться.
Суть задачи в том, чтобы сервер сначала прочитал весь поток. А после прочтения всего потока, поочередно передавал данные. Вот в чем вопрос.
phil

Сообщение отредактировал gforcer - Пятница, 04 Декабря 2009, 16:14
 
gforcerДата: Пятница, 04 Декабря 2009, 16:26 | Сообщение # 2
Начинающий
Группа: Участники
Сообщений: 156
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: несколько
Проектов: РТС, Рейсинг, ФПС
извините, тупо вышло.
Я сам знаю что поток нельзя нарушить так, чтобы дальше данные были не читаемые. Если программист не совсем нуб конечно.
Просто волновался, что:

Прочитал строку из потока, и написал в поток то-то и то-то.
Затем прочитал следующую строку и зделал другие действия. Вот здесь то и был повод поволноваться, что строка с инфой могла в потоке смешаться или нарушиться из-за новых данных.
Но волноваться ведь в принципе не из-за чего ?
phil

 
  • Страница 1 из 1
  • 1
Поиск: