Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76

баги в локальной сети

16.05.2012, 14:18. Показов 1054. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
использую компоненты ServerSocket и ClientSocket
отправляю с сервера вот так:
C++
1
2
3
sprintf(b,"%s %s %s %s %s %s %s %s %s %s %s %s",a1,a2,a3,a4,a5,a[0],a[1],a[2],a[3],a[4],a[5],a[6]); //строка с разными переменными предварительно записанными в массивы char 
String str = b;
ServerSocket1->Socket->Connections[0]->SendText(str);
в клиенте принимаю вот так:
C++
1
ASD = ClientSocket1->Socket->ReceiveText().c_str();
в итоге в клиент приходит или пол строки, или вообще приходит через раз, а если на одном компе пробовать с ip 127.0.0.1 то всё замечательно
хелп!!
мб это фиговый протокол мб попробовать indy? он говорят выше по уровню находится
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2012, 14:18
Ответы с готовыми решениями:

Мониторинг локальной сети (курсовик)
Подскажите плз как отобразить MAС адреса на всех компьютерах в локальной сети стандартными компонентами? :gsad:

Передача сообщений по локальной сети
Может кто подкинуть простейший пример передачи текстовых сообщений хотябы между 2 компами

Передача файлов по локальной сети
скиньте пожалуйста исходники с рабочим примером передачи текстовых документов по локальной сети через серверсокет и клиентсокет заранее...

13
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 16:06
Что такое ASD?
И почему ты сообщение преобразовываешь в char*?
C++
1
ReceiveText().c_str();
Слышал такое что в инди меньше багов, но у меня лично и с этими компонентами работало нормально

Добавлено через 9 минут
Посмотрел мою прогу, там так
C++
1
2
3
4
5
6
7
8
9
10
11
//----------------------Передача----------------------------------------------
ServerSocket1->Socket->Connections[i]->SendText(S);// Передача
//...
//----------------------Приём----------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
AnsiString S = Socket->ReceiveText();
//...
}
//------------------------------------------------------------
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 16:37  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Что такое ASD?
И почему ты сообщение преобразовываешь в char*?
C++
1
ReceiveText().c_str();
ASD это строка(в char) которая приходит по локалке, и ascii удобней чем юникод

Добавлено через 3 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
AnsiString S = Socket->ReceiveText();
и какая разница как писать что так:
C++
1
ClientSocket1->Socket->ReceiveText();
что так:
C++
1
Socket->ReceiveText()
можно хоть так:
C++
1
Form1->ClientSocket1->Socket->ReceiveText();
смысл не измениться

Добавлено через 1 минуту
Цитата Сообщение от Avazart Посмотреть сообщение
ServerSocket1->Socket->Connections[i]->SendText(S);
а что за i
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 16:47
смысл не измениться
Главное чтоб в ClientSocket1Read было, а не где попало...
ASD это строка(в char) которая приходит по локалке, и ascii удобней чем юникод
Нафига вам здался конченый char? покажите его объявление?
(Пишу Ansi по тому как проет мой был еще на Builder6)
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 16:49  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Главное чтоб в ClientSocket1Read было, а не где попало...

Нафига вам здался конченый char? покажите его объявление?
(Пишу Ansi по тому как проет мой был еще на Builder6)
Да ReceiveText() в обработчике ClientSocket1Read
а char вот
C++
1
static char* ASD = new char[36];
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 16:52
Так может вы размер не угадали? Вдруг там больше 36 символов?
Попробуй с обычным String...
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 16:59  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Так может вы размер не угадали? Вдруг там больше 36 символов?
Попробуй с обычным String...
да я больше делал, сделал поменьше потому что иногда почему то приходит строка 2 раза,
ещё ставлю '\0' в конце на [35] чтоб она не копировалась

вообще таймер на 100 мсек посылает каждый раз строку из 36 символов
комп может не успевает?

Добавлено через 1 минуту
я и так отправляю стринг а не чар, это уже перед передачей преобразовываю и после
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 17:48
да я больше делал, сделал поменьше потому что иногда почему то приходит строка 2 раза,
Так выяснять надо почему два раза приходит...а не ерундой маяться "гоняя строки"
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 17:52  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Так выяснять надо почему два раза приходит...а не ерундой маяться "гоняя строки"
а чё выяснять я перед тем как передавать строку вывожу в label а патом когда принимаю сразу же тоже в label и приходит иногда в 2 раза больше строка.
у меня на компе, если запустить 2 программы, нормально всё работает, а если разных компах запускать то такая фигня
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 18:00
Без конкретного кода, могу сказать только что проблема в не проге а в чем то другом, попо таму как у меня нормально работало приложение с этими компонентами.
1
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 20:40  [ТС]
разобрался, надо было таймер пореже сделать, поставил с 90мс на 150мс
подлагивает но приходит сообщение хорошо
пытался поправить чтоб не лагало, но теперь выдаёт ошибку
[ILINK32 Error] Fatal: Unable to open file 'IDBASECOMPONENT.OBJ'
Добавлено через 23 минуты
мне кажется я понял, но не уверен,
у меня был добавлен компонент IdTcpClient и IdTcpServer
но я их патом удалил ... может быть из за этого как то?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 20:47
может быть из за этого как то?
Из-за того что руки-сиськи.
Читай про использование компонентов, по тому как обсуждать что либо без кода безсмысленно... особенно при том что причина не в нем...
0
3 / 3 / 2
Регистрация: 04.12.2011
Сообщений: 76
16.05.2012, 20:54  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Из-за того что руки-сиськи.
Читай про использование компонентов, по тому как обсуждать что либо без кода безсмысленно... особенно при том что причина не в нем...
очень странно, но после того как я удалил компоненты и всё что с ними связано, теперь стало появляться в начале вот это
C++
1
2
3
4
5
6
7
#pragma link "IdBaseComponent"
#pragma link "IdComponent"
#pragma link "IdContext"
#pragma link "IdCustomTCPServer"
#pragma link "IdTCPClient"
#pragma link "IdTCPConnection"
#pragma link "IdTCPServer"
а если удалить то всё хорошо, но оно появляется как проект открываеш...
а кода больше 3000 строчек.... там врядли кто то разберется
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2012, 21:04
Ну если ты сам не можешь в своем коде разобраться, то что об этом говорить...
И в таких случаях не что не мешает создать новый проект и протестировать в нем ту чать кода в которой сомневаешься.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2012, 21:04
Помогаю со студенческими работами здесь

FileExists не работает в локальной сети
нужно прочитать данные из файла. проблема в том, что файл находится в локальной сети! не работает функция...

Чат для локальной сети
Добрый вечер! Помогите в моей проблеме, нужно написать чат, который работает по локальной сети. Облазил инет что то ни чего не нашел....

Создание кластера на локальной сети
Так звучит тема дипломной работы. Как я понял это объединение нескольких компьютеров для решения какой либо задачи. Не разу не...

Можно ли с помощью TcpListener производить операции в сети Интернет, а не в локальной сети
Добрый день, извиняюсь за идиотский вопрос, но можно ли с помощью TcpListener производить операции в сети Интернет, а не в локальной сети?...

Пропадает подключение к локальной сети и к сети интернет. Помогите пожалуйста.
Товарисчи, помогите пожалуйста! Всегда сеть работала нормально, но неожиданно появилось сообщение "Отсутствует подключение к локальной...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru