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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2013, 21:22   #1
11vmk
 
Регистрация: 10.10.2013
Сообщений: 3
Вопрос Не меняется имя клиента при отправке сообщени

Ребята,в общем такая проблема,создал простой чат,1 сервак,ек нему коннектятся несколько клиентов,всё передеёт правильно,сервак передает сразу на всех клиентов,но такая недоработка,при отправке сообщения клиентом_1 в поле вывода сообщения на сервере пишет одни и те же имена,то есть даже если я отправлю сообщ от 3-его клиента,в МЕМО сервера всё равно выведет,что сообщение поступило от 1-ого клиента,на скрине всё отчетливо видно.Хэлп ми плиз!

КОД DELPHI7 :
Код:
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.N1Click(Sender: TObject);
begin
 close;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ServerSocket1.Port := StrToInt(edit5.Text); //Устанавливаем порт
ServerSocket1.Active :=True;         //Включаем сервер на прослушку порта
StatusBar1.Panels.Items[0].Text:= 'Ожидание подключения';
end;
 
procedure TForm1.Button6Click(Sender: TObject);
VAR I:INTEGER;
begin
FOR i:=0 to 2 do
ServerSocket1.Socket.Connections[i].SendText(Edit7.Text);
Memo2.Lines.Add('['+TimeToStr(Time)+']'+' '+edit6.Text+  ' : '+edit7.Text );
edit7.Clear;
end;
 
procedure TForm1.ServerSocket1Accept(Sender: TObject;
  Socket: TCustomWinSocket);
begin
 StatusBar1.Panels.Items[0].Text:= 'Клиент подключен !';
end;
 
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ShowMessage('Ошибка #' + IntToStr(ErrorCode));   //выводим ошибку
 ErrorCode:=0;
end;
 
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var sMessage:string;
begin
sMessage := Socket.ReceiveText;
Memo2.Lines.Add('['+TimeToStr(Time)+']'+' '+edit3.Text+ ' : ' + sMessage);
end;
 
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var sMessage:string;
begin
   sMessage := Socket.ReceiveText;
   Memo1.Lines.Add('['+TimeToStr(Time)+']'+' '+edit6.Text+ ' : ' + sMessage);
end;
 
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
   var ErrorCode: Integer);
begin
 ShowMessage('Ошибка #' + IntToStr(ErrorCode));
 ErrorCode:=0;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText(Edit4.Text);
Memo1.Lines.Add('['+TimeToStr(Time)+']'+' '+edit3.Text+  ' : '+edit4.Text );
 edit4.Clear;      
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Port := StrToInt(Edit2.text);
 ClientSocket1.Address := Edit1.Text;
 ClientSocket1.Active :=True;
end;
 
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
StatusBar1.Panels.Items[0].Text:= 'Подключились к ' + Edit6.Text;
end;
 
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
StatusBar1.Panels.Items[0].Text:= 'Связь разорвана !!!';
end;
 
procedure TForm1.Edit6Click(Sender: TObject);
begin
edit6.Text:='';
end;
 
procedure TForm1.Edit7Click(Sender: TObject);
begin
edit7.Text:='';
end;
 
procedure TForm1.Edit3Click(Sender: TObject);
begin
edit3.Text:='';
end;
 
procedure TForm1.Edit4Click(Sender: TObject);
begin
edit4.Text:='';
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels.Items[1].Text:=' Время : '+ TimeToStr(Now);
 StatusBar1.Panels.Items[2].Text:=' Дата : '+ DateToStr(Now);
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
form2.showmodal;
end;
 
end.
Изображения
Тип файла: jpg 222822.jpg (79.5 Кб, 121 просмотров)

Последний раз редактировалось Stilet; 14.10.2013 в 21:27.
11vmk вне форума Ответить с цитированием
Старый 15.10.2013, 01:53   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

эм так вроде норм всё, советую попробовать трасировочку, проверить что отправляется и что получает клиент... И называйте компаненты своими именами а то Edit6, Edit7 не совсем понятно...
Dozent вне форума Ответить с цитированием
Старый 15.10.2013, 07:28   #3
11vmk
 
Регистрация: 10.10.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Dozent Посмотреть сообщение
эм так вроде норм всё, советую попробовать трасировочку, проверить что отправляется и что получает клиент... И называйте компаненты своими именами а то Edit6, Edit7 не совсем понятно...
хорошо,спасибо за совет насчет эдитов,можно поподробнее,я новичок)
11vmk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Валидация форм при отправке lino217 PHP 2 01.10.2013 05:06
Кодировка при отправке письма moshkin_ura PHP 2 20.10.2012 14:55
Ошибка при отправке E-Mail POPOV Работа с сетью в Delphi 4 10.04.2012 23:47
Как привязать текстовый файл имя которого меняется. SergeyK Microsoft Office Excel 8 28.10.2010 14:16
ошибка при отправке D_E_N Работа с сетью в Delphi 11 01.11.2009 00:41