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

ServerSocket и ClientSocket на одной Form

18.01.2014, 16:42. Показов 2624. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru