Привет. Программистов попрошу помочь с проверкой правильности и работоспособности:
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](http://igrostroenie.ru/smiles/phil.gif)