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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 20:50   #1
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию ServerSocket и ClientSocket передача буфера

Добрый вечер.
с сетью работаю недавно

вот так передаю массив buf типа byte
Код:
ServerSocket.Socket.Connections[0].SendBuf(Buf,4)
все работает

а когда пытаюсь передать buf типа integer то данные приходят совсем не те
там 0 например.

что делать?
Тутонхамон вне форума Ответить с цитированием
Старый 14.04.2011, 21:11   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Не соизволит ли вашскородие привести декларацию идентификатора buf для обоих случаев ?)
mss вне форума Ответить с цитированием
Старый 15.04.2011, 05:33   #3
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию

когда передаю buf типа byte
Код:
var buf:array[0..3] of byte;
...
...
...
ServerSocket.Socket.Connections[0].SendBuf(Buf,4)
все норм допустим если передаю
Код:
buf[0]:=15
buf[1]:=46
buf[2]:=1
buf[3]:=2
то приходит 15, 46, 1, 2

//----------------------------------------------------------------
а так
Код:
var buf:array[0..3] of integer;
...
...
...
ServerSocket.Socket.Connections[0].SendBuf(Buf,4)
допустим если передаю
Код:
buf[0]:=15
buf[1]:=46
buf[2]:=1
buf[3]:=2
то приходит 1, 0, 0, 0

как видите совсем не то что надо =(

p.s. ну вот допустим надо передать координаты мыши в byte они не влезут
поэтому и хочу в integer передать

Последний раз редактировалось Тутонхамон; 15.04.2011 в 05:41.
Тутонхамон вне форума Ответить с цитированием
Старый 15.04.2011, 08:02   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

А второй параметр процедуры sendbuf Вы знаете что означает ? походу нет... там идёт длина всего передаваемого буфера В БАЙТАХ, а у вас что ? вам по уму надо писать ...sendbuf(buf, sizeof(buf[0])*length(buf)) тогда размер буфера (4) и размер 1 элемента буфера (тоже 4 , для интеджера) в итого дадут полную длину 16, что вы и передадите.

Отдельный вопрос ещё в том , как Вы принимаете, там тоже вряд ли всё гладко
phomm вне форума Ответить с цитированием
Старый 15.04.2011, 12:28   #5
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию

Цитата:
А второй параметр процедуры sendbuf Вы знаете что означает ?
Нет!


Большое спасибо за помощь =)

А принимаю я так
Код:
var len:byte;
...
...
...
len:=Socket.ReceiveLength;
Socket.ReceiveBuf(Buf,len);

Последний раз редактировалось Тутонхамон; 15.04.2011 в 13:15.
Тутонхамон вне форума Ответить с цитированием
Старый 15.04.2011, 13:34   #6
Тутонхамон
Пользователь
 
Аватар для Тутонхамон
 
Регистрация: 09.02.2011
Сообщений: 43
По умолчанию

phomm
спасибо все работает как надо.
Тутонхамон вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
serversocket-clientsocket ben95 Работа с сетью в Delphi 10 20.01.2011 08:28
Передача данных StringGrid через ServerSocket - ClientSocket Polotenchik Общие вопросы Delphi 4 18.03.2010 01:42
ClientSocket и ServerSocket KoBRaAndrey Работа с сетью в Delphi 4 08.01.2010 19:21
ClientSocket,ServerSocket передача данных Torvald Работа с сетью в Delphi 3 07.09.2009 03:59
Serversocket,clientsocket prizrak1390 Работа с сетью в Delphi 10 21.04.2009 16:04