|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.04.2016, 20:58 | #1 |
Регистрация: 14.11.2012
Сообщений: 3
|
SendBuf и SendText путаница в приёме
Здравствуйте, мне необходимо отправить с клиента на сервер массив и тест, осуществляю при помощи:
ClientSocket1.Socket.SendBuf(mass,s izeof(mass)); ClientSocket1.Socket.SendText(memo2 .Text); приём ServerSocket1.Socket.Connections[0].ReceiveBuf(mass,sizeof(mass)); Opisanie:=ServerSocket1.Socket.Conn ections[0].ReceiveText; Всё передаётся и принимается, но вот только текст передаётся не правильно вот пример: отправляю: " Произошла странная ошибка" а приходит -386993937-454101519-249498904транная ошибка Интересно, что если поменять местами ReceiveBuf и ReceiveText местами, то криво примется массив, подскажите, как решить эту задачку? |
30.04.2016, 21:05 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что массив вы некорректно отправляете и читаете.
вам надо отправлять его длину еще(если не фиксирована) и читать начиная с первого элемента в размер siteof(arrayType)*array.Length) если длина не фиксирована то передавайте ее отдельно. причем массив так можно передать только если он не содержит ссылочных данных и указателей(string, TObject и тп, ^) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
30.04.2016, 21:46 | #3 |
Регистрация: 14.11.2012
Сообщений: 3
|
массив у меня фиксированный всегда 3 цифры
|
30.04.2016, 22:18 | #4 |
Регистрация: 14.11.2012
Сообщений: 3
|
Может я вас не правильно понял, исправил в клиенте на
ClientSocket1.Socket.SendBuf(mass,s izeof(integer)*3); но ничего не изменилось. Суть в чём, я в массиве отправляю значения и при получении раскрываю массив, в соответствие с ними в таблицу заносятся данные. Когда он криво принимает сообщение в первую строку таблицы вносятся данные из массива, но потом он создаёт(почему то) вторую строчку и вносит туда только тот кусок текста который нормально передался. Может эта информация поможет понять проблему лучше. Я новичок в программирование, по этому очень надеюсь на вашу помощь, в остальном программа работает. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Socket.SendText проблема | SwiP | Работа с сетью в Delphi | 11 | 19.03.2012 13:36 |
Можно ли посредством Socket.SendText отправить команду? | NiKiToZZ- | Помощь студентам | 1 | 23.01.2011 22:47 |
Подсчёт пульсаций и пауз при приёме данных с ИК пульта | Terran | Win Api | 6 | 21.11.2009 12:19 |
ClientSocket/Serversocket SendText | Lime | Работа с сетью в Delphi | 10 | 08.10.2009 19:52 |
Ошибка при приёме данных ServerSocket'ом | Terran | Работа с сетью в Delphi | 2 | 25.01.2009 12:20 |