|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.11.2007, 13:17 | #1 |
Регистрация: 02.10.2007
Сообщений: 5
|
ServerSocket recievebuf и sendbuf
Добрый день.Подскажите пожалуйста как мне методом SendBuf передать число больше 255(т.е больше одного байта)?При попытке передать тип integer все равно передается однобайтное число.
Со стороны клиента: Получение: var buf:integer; begin Socket.Receivebuf(buf,4);/Если я правильно понял:вторым параметром передается кол-во передаваемых байтов(для Integer четыре) edit3.text:= inttostr(buf);/в edit3 вывожу полученное число end; Отправка: var buf:integer; begin buf:=strtoint(edit2.Text);/в edit2 пользователь вводит необходимое для отправки число ClientSocket1.Socket.SendBuf(buf,4) ; end; Со стороны сервера: var buf:integer; begin Socket.ReceiveBuf(buf,4); edit1.text:= inttostr(buf);/вывожу полученое число buf:=buf+5;/прибавляю 5 и отправляю обратно клиенту ServerSocket1.Socket.Connections[0].SendBuf(buf,4); end; |
25.11.2007, 14:50 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Все верно. А с чего вы взяли что возвращается только один байт ? Случаем не с того что buf в пределе (0;255) ?
|
25.11.2007, 15:34 | #3 |
Регистрация: 02.10.2007
Сообщений: 5
|
Наверно я чего-то не понимаю...Взял с того что при такой отправке(которую я написал)числа с клиента большего 255(а предел integer много больше),принятое число на сервере в edit1 получается отправленное-255.Почему так?И как можно работать с большим числом?
Заранее спасибо. |
25.11.2007, 16:26 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
наверное дело в параметре... кажется там должно идти send(@buf, sizeof(buf)); я просто не отслылал никогда таким образом. Поидеи проблем тут никаких не должно быть.
|
09.11.2017, 17:47 | #5 |
Новичок
Джуниор
Регистрация: 09.11.2017
Сообщений: 1
|
Чем закончилось дело?
Если известно сколько именно байт должно прийти, то надо в цикле вызывать Socket.ReceiveLength и ждать, пока там не будет ожидаемого количества байт и затем читать. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Serversocket,clientsocket | prizrak1390 | Работа с сетью в Delphi | 10 | 21.04.2009 16:04 |
Вопрос про ServerSocket и ClientSocket | civic.qip | Работа с сетью в Delphi | 8 | 27.09.2008 02:04 |
Кто Етот ServerSocket ? | combays | Помощь студентам | 5 | 24.08.2008 21:40 |
Socket.SendBuf\ResiveBuf | SunKnight | Работа с сетью в Delphi | 7 | 13.06.2008 12:43 |
загадочные clietnsocket и serversocket! | steck | Работа с сетью в Delphi | 5 | 16.08.2007 14:48 |