T
Toland
Уважаемые программисты, помогите пожалуйста разобраться с одной проблемой.
Я задумал сделать очень простую сетевую игру танчики.
В клиенте создается TImage с изображением танка
(Tank:array [1..10] of TImage; ), его номер отправляется
на сервер и рассылается всем подключенным клиентам.
И на тех клиентах создаются TImage с таким же номером.
В клиенте передвигаю TImage по форме, её кординаты
передаются на сервер и рассылаются всем подключенным клиентам.
У меня есть вот такая структура, которую я передаю через сокеты:
Сначала эта структура попадает на сервер и он рассылает её всем клиентам вот таким образом:
Дело в том, что TServerSocket находится в режиме stThreadBlocking и такой способ является неправильным, так как каждый поток должен заниматься отправкой данных только своему клиенту.
Подскажите пожалуйста как можно реализовать данную задумку?
Заранее большое спасибо.
Я задумал сделать очень простую сетевую игру танчики.
В клиенте создается TImage с изображением танка
(Tank:array [1..10] of TImage; ), его номер отправляется
на сервер и рассылается всем подключенным клиентам.
И на тех клиентах создаются TImage с таким же номером.
В клиенте передвигаю TImage по форме, её кординаты
передаются на сервер и рассылаются всем подключенным клиентам.
У меня есть вот такая структура, которую я передаю через сокеты:
Код:
type
PlayerPosition = packed record
PosX:integer; //Положение по X
PosY:integer; //Положение по Y
id:integer; //id танка
end;
Код:
procedure TForm1.SendPosTank;
var
i: integer;
Pos:PlayerPosition;
begin
for i := 0 to ServerSocket1.Socket.ActiveThreads - 1 do
begin
ServerSocket1.Socket.Connections[i].SendBuf(Pos,SizeOf(Pos));
end;
end;
Подскажите пожалуйста как можно реализовать данную задумку?
Заранее большое спасибо.