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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2014, 05:34   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию ServerSocket и ClientSocket. Сервер не обрабатывает onClientRead

Здравствуйте, чюлавеки, за помощь благодарен навеки). Если без шуток, то проблема такова. Тестю на одном компе. При нажатии у клиента на кнопку "подключение и отправка" говорит, что подключен. Сервер тоже говорит, что принял клиента. А значит ClientConnect и ServerAccept обрабатываются, следовательно связь установлена. Но вот на сервере не срабатывает событие onServerRead. В чем может быть загвоздка?

Код клиента.
Код:
procedure TForm1.Button1Click(Sender: TObject);// подключение и отправка
begin
//   эдит1 = 127.0.0.1
clientsocket1.Host:=Edit1.Text; 
clientsocket1.Address:=Edit1.Text;

// порт =48000
clientsocket1.Port:=StrToInt(Edit2.Text);
clientsocket1.Active:=True;
clientsocket1.Socket.SendText(Edit3.Text);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
showmessage('подключились');
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  showmessage(inttostr(ErrorCode));
end;
В сервере выставлен порт 48000. Код сервера.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
serversocket1.Active:=true;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
 showmessage(socket.ReceiveText);
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  serversocket1.Close;
end;

procedure TForm1.ServerSocket1Accept(Sender: TObject;
  Socket: TCustomWinSocket);
begin
showmessage('подключен');
end;
Заранее благодарен, извините, что занял время.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 20.02.2014, 09:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
clientsocket1.Active:=True;
clientsocket1.Socket.SendText(Edit3 .Text);
Видимо потому что ты активируешь сокет, но не дожидаясь его коннекта посылаешь строку. Иногда я вижу такое решение в инете:
Код:
clientsocket1.Active:=True;
sleep(1000);
clientsocket1.Socket.SendText(Edit3.Text);
Это типа "быдлокодом" считается, но зато доказывает, что дождаться коннекта необходимо.
SendText помести в OnConnect клиента, тогда хотя бы будешь точно знать что передача пойдет точно после коннекта удачного.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.02.2014, 10:00   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Спасибо, Stilet, что откликнулись. Добавил 2-ую кнопку, куда поместил send. Подключаюсь, showmessage вылазиют от клиента и от сервера, жмахаю пару раз "Ок", жду некоторое время, жмахаю send, но чуда не происходит (.

UPD
Как всегда, необдуманные действия приводят к необдуманным ситуациям. Если в serversocket выставить stThreadBlocking, то onClientRead не будет обрабатываться.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 21.02.2014 в 03:51.
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Serversocket и ClientSocket myxosran Работа с сетью в Delphi 3 12.09.2011 20:30
serversocket-clientsocket ben95 Работа с сетью в Delphi 10 20.01.2011 08:28
ClientSocket и ServerSocket Hacker19_90 Работа с сетью в Delphi 1 23.03.2010 01:17
ServerSocket и ClientSocket Sensizu Работа с сетью в Delphi 5 30.12.2009 00:09
Serversocket,clientsocket prizrak1390 Работа с сетью в Delphi 10 21.04.2009 16:04