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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2013, 16:22   #1
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию Сокеты и обмен переменными

Нуб нуждается в помощи. Пытаюсь с помощью клиента серверу отправить переменную X типа INTEGER.

Код отправки переменной:
Код:
Var x:integer;
Begin
X:=1;
Clientsocket1.socket.sendbuf(x,sizeof(x));
End;
Код получения переменной:
Код:
Var x:integer;
Begin
X:=socket.receivebuf(x,sizeof(x));
Caption:=inttostr(x);
End;
Проблема в том, что вместо единицы, в заголовке окна пишется 25780 или что-то в этом роде. Коннект происходит.
Укажите на ошибку, пожалуйста.
ruN00b вне форума Ответить с цитированием
Старый 05.07.2013, 18:20   #2
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

if socket.receivebuf(x,sizeof(x))=size of(x) then
Caption:=inttostr(x);
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 05.07.2013, 20:47   #3
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Ой блин, вот держи:
отдача
Код:
Var
T: Integer;

//процедура
begin
ClientSocket1.Socket.SendText(IntToStr(T));
end;
прием
Код:
//onRead
begin
Caption:='приняли число:' + Socket.ReceiveText;
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 05.07.2013, 20:49   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

И ещё: Буфер-это массив, а не переменая.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 05.07.2013, 21:55   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
И ещё: Буфер-это массив, а не переменая.
переменная состоит из байт, потому буфер это все что угодно.

а передавать все как текст не стоит.


ТС, а вы где читаете? надеюсь в процедуре чтения?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.07.2013, 21:58   #6
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

саша40, окей, а если я буду передавать картинку или видеофайл, как ты это переконвертируешь в текст? А если и переконвертируешь, то, мне кажется, картинка будет "немного" долго конвертироваться в текст, затем загружаться, а потом снова конвертироваться в себя.
ruN00b вне форума Ответить с цитированием
Старый 05.07.2013, 22:04   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я вот вспомнил одно, главное помните что TCP протокол вам не дает различий между посылками, потому вам надо их делить самим.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.07.2013, 18:00   #8
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

Да мне бы хотя бы INTEGER передать... А потом уже отправлять большие файлы..
ruN00b вне форума Ответить с цитированием
Старый 06.07.2013, 18:09   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ТС, а вы где читаете? надеюсь в процедуре чтения?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.07.2013, 10:45   #10
ruN00b
Почетный нуб
Форумчанин
 
Аватар для ruN00b
 
Регистрация: 07.05.2013
Сообщений: 155
По умолчанию

извиняюсь, давно не отвечал. да, клиент читает в OnRead.
ruN00b вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с переменными KoBaL PHP 0 23.06.2013 14:48
Документ с переменными Demonss Microsoft Office Excel 1 19.08.2011 07:32
Проблема с переменными PODz Помощь студентам 0 13.11.2009 01:33
Работа с переменными Sapsan Общие вопросы C/C++ 2 24.02.2009 20:02
Проблема с переменными. TheWanderer Общие вопросы C/C++ 5 06.10.2008 18:15