Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2009, 20:41   #1
S1nt3z
 
Регистрация: 15.11.2008
Сообщений: 5
Стрелка Как отправить сообщение определенным клиентам? TServerSocket

Здравствуйте. Подскажите пожалуйста, у меня вопрос такого рода:
1. Есть кнопка при нажатии на которую происходит отправка текста из Memo2 всем активным соединениям
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Socket : TCustomWinSocket;
begin
for i:= 0 to ServerSocket1.Socket.ActiveConnections -1 do
if ServerSocket1.Socket.Connections[i].Handle <> Socket.Handle then
Serversocket1.Socket.Connections[i].SendText(Memo2.Text)
end;
2. Есть CheckListBox при получении от клиента сообщения с определенным текстом добавляет его в этот список с порядковым номером.
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
CheckListBox1.Items.Add(Socket.ReceiveText + ' Подключен!');
end;
3. Собственно вопрос. Как сделать чтобы ServerSocket слал сообщения только checked клиентам из списка, а не всем активным.

Если будет свободное время,потратте его пожалуйста ответом в этот пост Спасибо за внимание

Последний раз редактировалось S1nt3z; 14.11.2009 в 20:48.
S1nt3z вне форума Ответить с цитированием
Старый 14.11.2009, 21:50   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нк так проверяйте отмечен или нет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.11.2009, 08:59   #3
S1nt3z
 
Регистрация: 15.11.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
нк так проверяйте отмечен или нет
А как реализовать это не подскажете?
S1nt3z вне форума Ответить с цитированием
Старый 15.11.2009, 12:14   #4
S1nt3z
 
Регистрация: 15.11.2008
Сообщений: 5
По умолчанию

Вот сейчас поменял чуть чуть код. Теперь клиент не получает сообщения. В чем проблема? Помогите пожалуйста
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls, Grids, ValEdit, XPMan, ComCtrls, Menus,
  CheckLst;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ServerSocket1: TServerSocket;
    XPManifest1: TXPManifest;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Memo1: TMemo;
    GroupBox3: TGroupBox;
    Memo2: TMemo;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    CheckListBox1: TCheckListBox;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Type
 TUserList = object
 Name : String;
 end;
var
  Form1: TForm1;
  users : array[0..255] of TUserList;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Port := 5696;
serversocket1.Active := true;
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
  i : integer;
begin
  for i:=0 to ServerSocket1.Socket.Activeconnections -1 do
  begin
  users[i].Name := Socket.ReceiveText;
  Checklistbox1.Items.Add(users[i].Name + 'Ïîäêëþ÷åí!');
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Socket : TCustomWinSocket;
begin
for i:= 0 to ServerSocket1.Socket.ActiveConnections -1 do
if (CheckListBox1.Checked[i]) and (CheckListBox1.Items.Strings[i]=users[i].Name) then //Ошибка думаю тут при проверке
begin
if ServerSocket1.Socket.Connections[i].SocketHandle <> Socket.Handle then
ServerSocket1.Socket.Connections[i].SendText(Memo2.Text);
end;
end;
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('[-]Client disconnected');
CheckListBox1.Items.Delete(StrToInt(Socket.ReceiveText));
end;



end.

Последний раз редактировалось S1nt3z; 15.11.2009 в 13:20.
S1nt3z вне форума Ответить с цитированием
Старый 15.11.2009, 13:29   #5
S1nt3z
 
Регистрация: 15.11.2008
Сообщений: 5
По умолчанию

Вопрос исчерпан)) Спасибо
S1nt3z вне форума Ответить с цитированием
Старый 29.01.2011, 22:27   #6
ODESSA883
 
Регистрация: 29.01.2011
Сообщений: 3
По умолчанию

Привет друг !!! Скинь плиз рабочий код или исходник позарес нужен !!!
по serversocet ну по данной теме !!! Заранее благодарен !!!
ODESSA883 вне форума Ответить с цитированием
Старый 29.01.2011, 22:28   #7
ODESSA883
 
Регистрация: 29.01.2011
Сообщений: 3
По умолчанию

S1nt3z !!! Скинь рабочий код который у тебя получилься !!!
ODESSA883 вне форума Ответить с цитированием
Старый 29.01.2011, 22:30   #8
ODESSA883
 
Регистрация: 29.01.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от S1nt3z Посмотреть сообщение
Вопрос исчерпан)) Спасибо
Привет друг !!! Скинь плиз рабочий код или исходник позарес нужен !!!
по serversocet ну по данной теме !!! Заранее благодарен !!!
ODESSA883 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать ячейку мигающей определенным цветом? ru3000 Microsoft Office Excel 1 14.11.2009 11:34
Не получается отправить сообщение на сервер zver777 Работа с сетью в Delphi 8 26.10.2009 22:42
Как отправить сообщение участнику форума xNut О форуме и сайтах клуба 5 17.06.2009 12:30
Как программно дать доступ к файлу определенным пользователям? Stilet Общие вопросы Delphi 0 23.04.2009 16:24
Как отправить Access-ом сообщение по Outlook? ИгнатАлт Microsoft Office Access 2 23.11.2007 18:47