|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.12.2019, 17:15 | #1 |
Пользователь
Регистрация: 23.06.2019
Сообщений: 18
|
Socket
К серверу подключаются два клиента
Не правильно считает счет и отправляет каждому клиенту другие данные Сервер пишет ошибку List index out of bounds unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp; type TForm1 = class(TForm) ServerSocket1: TServerSocket; ListBox1: TListBox; Button1: TButton; Button2: TButton; Button3: TButton; procedure ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ServerSocket1ClientRead(Send er: TObject; Socket: TCustomWinSocket); var S,S1,H:String;i,k,k1:integer; begin H:= IntToStr(Socket.SocketHandle); //+'>'+ S:=Socket.ReceiveText; ListBox1.Items.Add(S); k:=0; k1:=0; for i:=0 to ServerSocket1.Socket.ActiveConnecti ons-1 do begin If ServerSocket1.Socket.Connections[i].SocketHandle<> Socket.SocketHandle Then //ServerSocket1.Socket.Connections[i].SendText(S1); if (ListBox1.Items.Count=2) then if (ListBox1.Items[0]='Камень') and (ListBox1.Items[1]='Ножницы') then // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); // ServerSocket1.Socket.Connections[i].SendText(S); k:=k+1; if (ListBox1.Items[0]='Ножницы') and (ListBox1.Items[1]='Камень') then //ServerSocket1.Socket.Connections[i].SendText(S); k1:=k1+1; // ListBox1.Clear; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Бумага') and (ListBox1.Items[1]='Камень') then k:=k+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Камень') and (ListBox1.Items[1]='Бумага') then k1:=k1+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Ножницы') and (ListBox1.Items[1]='Бумага') then k:=k+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Бумага') and (ListBox1.Items[1]='Ножницы') then k1:=k1+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Камень') and (ListBox1.Items[1]='Камень') then // k1:=k1+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Ножницы') and (ListBox1.Items[1]='Ножницы') then // k1:=k1+1; // S:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); if (ListBox1.Items[0]='Бумага') and (ListBox1.Items[1]='Бумага') then // k1:=k1+1; S1:='Вася: '+inttostr(k)+' | '+ 'Петя: '+inttostr(k1); ServerSocket1.Socket.Connections[i].SendText(S1); end; // if (ListBox1.Items.Count=2)then // ListBox1.Clear; end; procedure TForm1.FormCreate(Sender: TObject); begin ServerSocket1.Active:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin ServerSocket1.Active:=false;Close; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Clear; end; end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
<socket type='xml'/> ИЛИ <socket type='json'/> зашифровываются пакеты TCP | ArtGrek | Общие вопросы Web | 2 | 10.02.2017 23:17 |
C++ & C# SOCKET | Olejik | C/C++ Сетевое программирование | 0 | 15.01.2013 23:12 |
Socket | IGOMERL | C++ Builder | 1 | 16.03.2011 11:05 |
Raw Socket C++ | GanBit | Помощь студентам | 0 | 21.09.2010 10:01 |
socket | Артэс | C/C++ Сетевое программирование | 2 | 22.06.2009 17:22 |