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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2017, 11:25   #11
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Попробуйте на компоненте TClientSocket сделать что я описал в посте выше #9 с ним проще работать

Последний раз редактировалось Aliens_wolfs; 01.04.2017 в 11:32.
Aliens_wolfs вне форума Ответить с цитированием
Старый 01.04.2017, 11:50   #12
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Если не получиться то думаю стоит обратить внимание на компонент TClientSocket должен быть во вкладке internet с ним проще работать
Если у вас в Delphi не установлен этот компонент то с ним можно работать так
Подключаем модуль в Uses ScktComp
Всё получилось!!! Спасибо огромное! Данные приходят.
Еще хочу проверить без запроса, должно тоже работать.
Как проверю, отпишусь =)
Fox78 вне форума Ответить с цитированием
Старый 01.04.2017, 11:54   #13
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

ОК.
Компоненты IdTCPClient и IdTCPServer всегда странные и мучительные в работе.

Последний раз редактировалось Aliens_wolfs; 01.04.2017 в 16:52.
Aliens_wolfs вне форума Ответить с цитированием
Старый 03.04.2017, 05:59   #14
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию

Без запроса всё работает, только что проверил =)
Fox78 вне форума Ответить с цитированием
Старый 03.04.2017, 07:43   #15
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Fox78 Посмотреть сообщение
...всё работает...
Исходники выложите для свободного доступа.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 04.04.2017, 06:55   #16
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию

Цитата:
Сообщение от zvygin1964 Посмотреть сообщение
Исходники выложите для свободного доступа.
Если вы читали тему, то могли увидеть исходники несколькими сообщениями выше.
Fox78 вне форума Ответить с цитированием
Старый 05.04.2017, 18:51   #17
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Исходный рабочий код в посте #9
Aliens_wolfs вне форума Ответить с цитированием
Старый 12.04.2017, 06:53   #18
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию

Еще возник вопрос. Если реализовать два сокета, то как это сделать?

Я объявляю новый сокет:
Код:
public
ClientSocket1: TClientSocket;
ClientSocket2: TClientSocket;
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
   procedure ClientSocketError(Sender: TObject;Socket: TCustomWinSocket;
   ErrorEvent: TErrorEvent; var ErrorCode: Integer);
   procedure ClientSocketDisconnect(Sender: TObject; Socket: TCustomWinSocket);
   procedure ClientSocketConnecting(Sender: TObject; Socket: TCustomWinSocket);
   procedure ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
   procedure ClientSocketWrite(Sender: TObject; Socket: TCustomWinSocket);
end;
В обработчике кнопки прописываю все параметры:

Код:
procedure TForm1.ConnectDev_btnClick(Sender: TObject);
begin
ClientSocket2.Address:= '192.168.1.95';
ClientSocket2.Port:=10200;
ClientSocket2.ClientType:= ctNonBlocking;
ClientSocket2.Open;
end;
При попытке соединения выдает ошибку:
'Access violation at adress 005E671C in module 'Project.exe'. Read of address 00000048'.

Что я делаю не так?
Fox78 вне форума Ответить с цитированием
Старый 12.04.2017, 07:20   #19
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Компоненты такие как ClientSocket2: TClientSocket; нельзя просто прописывать руками. Его надо обязательно положить на форму мышкой.

Если хочется руками, то тут надо прочитать про динамическое создание компонентов. Оно отличается от динамического создания объектов(или классов).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 12.04.2017 в 07:33.
Pavia вне форума Ответить с цитированием
Старый 12.04.2017, 07:23   #20
Fox78
Пользователь
 
Регистрация: 17.03.2017
Сообщений: 28
По умолчанию

У меня нет такой компоненты, только Indy

Не установлен компонент, я с ним работаю как описано в посте #9. Первый сокет работает отлично, пытаюсь прописать второй, выдает ошибки.

...
Нашел решение =)
Устанавливаю компоненту ClientSocket следующим образом:

Выбираю меню Component -> Install Packages -> Add -> В папке "C:\Program Files\Embarcadero\Studio\18.0\bin" выбираю dclsockets240.bpl -> Открыть -> Ok.
После этого во вкладке Internet появляется нужный мне компонент =)
Далее работаю уже с ним =)

P.S. Но все равно меня мучает вопрос как можно его прописать руками так же как и первый сокет.

Последний раз редактировалось Fox78; 12.04.2017 в 07:45.
Fox78 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Терминал Помощь. everlest Общие вопросы Delphi 2 19.01.2015 09:50
терминал Microlot gugushka Компьютерное железо 0 19.10.2012 11:31
Терминал Линукс! Necare Помощь студентам 3 20.04.2011 17:22
как создать TCP клиент, TCP сервер ? DreamMaster911 C/C++ Сетевое программирование 1 26.10.2010 15:05