Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2010, 19:00
UltraBloxX UltraBloxX вне форума
Новичок
 
Регистрация: 13.05.2009
Сообщения: 66
Репутация: 10
По умолчанию Не работают сокеты

Вообщем пробую сделать приложение клиент-сервер в Delphi 2009 на сокетах, тестирую на локалхосте. Клиент с сервером соединяется, а при попытке послать текст (как клиент -> сервер так и наоборот) приходит пустая строка. Что не так?
Ответить с цитированием
  #2  
Старый 21.02.2010, 19:03
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

покажи процедуры отправки-получения текста
Ответить с цитированием
  #3  
Старый 21.02.2010, 19:07
UltraBloxX UltraBloxX вне форума
Новичок
 
Регистрация: 13.05.2009
Сообщения: 66
Репутация: 10
По умолчанию

Код:
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
if Socket.ReceiveText = '12' then ShowMessage('Test Command Arrived')
else
begin
ShowMessage('Arrived data: ' + Socket.ReceiveText);
ClientSocket1.Socket.SendText('Error!');
end;
end;

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
test: string;
begin
if ServerSocket1.Socket.Connected = true then
begin
test := '12';
ServerSocket1.Socket.Connections[0].SendText(test);
end
else
ShowMessage('No connection...');
end;

На клиентсокет приходит строка '?'#0

Последний раз редактировалось UltraBloxX, 21.02.2010 в 19:17.
Ответить с цитированием
  #4  
Старый 21.02.2010, 19:15
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

а где ServerSocket1.Active := True; и ClientSocket1.Open?

на клиентской стороне:
Код:
  ClientSocket1.Open;
  ClientSocket1.Socket.SendText('test');
  ClientSocket1.Close;

на серверной:
Код:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  ShowMessage(Socket.ReceiveText);
end;
и чтобы в ServerSocket1.Active было True;

Последний раз редактировалось Ultras, 21.02.2010 в 19:19.
Ответить с цитированием
  #5  
Старый 21.02.2010, 19:25
UltraBloxX UltraBloxX вне форума
Новичок
 
Регистрация: 13.05.2009
Сообщения: 66
Репутация: 10
По умолчанию

Да, Open не было. Но сейчас оба сокета активны и открыты а строка всё равно не приходит...
Ответить с цитированием
  #6  
Старый 21.02.2010, 19:25
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

попробуй сделать вначале как я показал, будет работать или нет...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025