С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128

ServerSocket и ClientSocket на одной Form

18.01.2014, 16:42. Показов 2612. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу понять логику работы сокетов. У меня клиент, один сервер-распределитель и несколько серверов-вычислителей. От клиента приходит на сервер-распределитель приходит запрос. В зависимости от запроса, сервер-распределитель отсылает свой запрос на сервер-вычислитель. То есть в момент посылки запроса сервер-распределитель становится своеобразным клиентом.На форме сервера-распределителя я помещаю компоненты: ClientServer для связи с клиентом и ClientSocket для связи с сервером распределителем. Связь с клиентом и запрос на сервер распределитель осуществляю в void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, .Но получаю ошибку:Project Project1.exe reised exception class ESocketError with message 'No adress specified' мол не указан адрес.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// ---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
    TCustomWinSocket *Socket) {
    // принятое сообщение от клиента
    AnsiString text_line = ServerSocket1->Socket->ReceiveText();
    try {
        /** ==================================================================== */
        /* =====================Регистрация серверов============================ */
        /* =========Регистрация сервера реализующего метод 1==================== */
        if (text_line[1] == '1') {
            Memo1->Lines->Add(" \r \n " + TimeToStr(Now())
                + " \r \n клиент с адресом : " +
                ServerSocket1->Socket->RemoteAddress +
                " \r \n номер порта клиента : " +
                ServerSocket1->Socket->RemotePort +
                " \r \n запрашивает метод № 1 " +
                "\r\n---------------------------------------------------");
            // посылка сообщения сервера клиенту метода 1
            ServerSocket1->Socket->SendText(TimeToStr(Now()) + " " +
                " Успешная регистрация метода 1 " +
                "\r\n-----------------------------------------------------");
                        //пытаюсь подключиться к серверу-вычислителю
            Form1->ClientSocket1->Active = true;
            if (Form1->ClientSocket1->Active == true) {
                ClientSocket1->Host = "127.0.0.1";
                ClientSocket1->Port = 1112;
                ClientSocket1->Open();
                Form1->ClientSocket1->Socket->SendText(text_line);
            }
            Memo1->Lines->Add("открыт порт:" + IntToStr(ClientSocket1->Port)
                + "\r\nна адрес:" + ClientSocket1->Host +
                "\r\n-------------------------------" + "\r\n" + text_line);
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2014, 16:42
Ответы с готовыми решениями:

ServerSocket and ClientSocket
Подскажите через что проще сделать список подключенных людей к ClientSocket, так чтобы при подключении добавлялась запись и отключении...

ClientSocket и ServerSocket
В общем, задание таково: Клиентская программа оправляет на сервер последовательность из k целых чисел (значения чисел задаются через...

ServerSocket и ClientSocket (чат)
Проблема такого характера, чат реализовал - работает безукоризненно, с сервером соединяются 2 клиента и сервер видит их сообщения и...

4
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
18.01.2014, 17:53
Oleg34, это одно и то же...
C++
1
2
3
Form1->ClientSocket1->Active = true;
 
ClientSocket1->Open();
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128
18.01.2014, 19:40  [ТС]
Да, согласен, но это на работу не влияет. Вернее на неработу.
0
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
18.01.2014, 21:58
Oleg34, ну, как же не влияет?
C++
1
2
3
4
5
6
7
Form1->ClientSocket1->Active = true; // попытка открытия ненастроенного сокета - здесь и ошибка
if (Form1->ClientSocket1->Active == true) { // если сокет уже открыт
  ClientSocket1->Host = "127.0.0.1"; // то настраивать его уже не надо
  ClientSocket1->Port = 1112;
  ClientSocket1->Open(); // и открывать повторно тоже
  Form1->ClientSocket1->Socket->SendText(text_line); // можно сразу слать данные
}
Может, так понятнее будет?
C++
1
2
3
4
5
6
7
8
9
10
11
try
{
  ClientSocket1->Host = "127.0.0.1";
  ClientSocket1->Port = 1112;
  ClientSocket1->Open();
  ClientSocket1->Socket->SendText(text_line);
}
catch( Exception& x )
{
  // ошибка открытия [или отправки]
}
0
1 / 1 / 1
Регистрация: 22.12.2010
Сообщений: 128
18.01.2014, 22:20  [ТС]
Сейчас уже при отправке с клиента, что то я тут уже понаделал
Миниатюры
ServerSocket и ClientSocket на одной Form  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2014, 22:20
Помогаю со студенческими работами здесь

ClientSocket и ServerSocket в XE2 ?
Всем доброго дня. В C++ Builder 6 в закладке Internet были компоненты ClientSocket и ServerSocket. Они куда-то переехали или...

ClientSocket ServerSocket Вопрос
Когда я получил текст (ClientSocket1->Socket->ReceiveText());) то можно его сразу удалить а затем снова принять (вставляю в Timer) ? Типа...

ServerSocket и ClientSocket обмен данными
Подскажите как обмен данными идет через SendText и ReceiveText в данных компонентах (ServerSocket и ClientSocket). А то посылаю с клиента...

Передача текста по ClientSocket/ServerSocket
Здрасьте. Поюзал несколько примеров по тому, как можно реализовать обмен текстом между двумя прогами на разных компах. Использую...

ServerSocket/ClientSocket-получение IP клиента.
Дело в том, что я пишу программу типа "клиент-сервер". Для этого я использую стандартные компоненты ServerSocket, ClientSocket. ПОсле того...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru