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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2009, 00:36   #1
Zeraim
Ra-Ra ?
Форумчанин
 
Аватар для Zeraim
 
Регистрация: 06.03.2008
Сообщений: 286
По умолчанию RecvFrom ошибка

RecvFrom(Sckt,Buff,SizeOf(Buff),0,f rmAddr,SizeOf(TSockAddr));

[Pascal Error] CardSender.pas(132): E2033 Types of actual and formal var parameters must be identical

Что-то даже не знаю, вроде всё верно, с SendTo ни каких проблем не было.
Zeraim вне форума Ответить с цитированием
Старый 25.12.2009, 00:51   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

В ошибке ясно сказано о несовпадении типов переменных при объявлении RecvFrom() и тех, которые используете вы в качестве параметров...
Приведите объявление RecvFrom().
mihali4 вне форума Ответить с цитированием
Старый 25.12.2009, 00:57   #3
Zeraim
Ra-Ra ?
Форумчанин
 
Аватар для Zeraim
 
Регистрация: 06.03.2008
Сообщений: 286
По умолчанию

uses
....WinSock;

...

var
buff : array [0..9900] of integer;
Sckt : TSocket;
frmAddr : TSockAddr;

....

Цитата:
Для получения данных, присланных сокету, используется функция RecvFrom, имеющая следующий прототип:

function RecvFrom(S:TSocket;var Buf;Len,Flags:Integer;
var From:TSockAddr;var FromLen:Integer):Integer;
Zeraim вне форума Ответить с цитированием
Старый 25.12.2009, 01:36   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var
buff : array [0..9999] of integer;//обратите внимание..размер и цифры...лучше подстраховатся
Sckt : TSocket;
frmAddr : TSockAddr;
var i:integer;
begin
i:=Sizeof(frmAddr);
RecvFrom(Sckt,Buff[0]{в работе с массивами я всегда делаю так, никогда не подводило},10000*SizeOf(integer),0,f rmAddr,i);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.12.2009, 01:44   #5
Zeraim
Ra-Ra ?
Форумчанин
 
Аватар для Zeraim
 
Регистрация: 06.03.2008
Сообщений: 286
По умолчанию

Спасибо, i:=Sizeof(frmAddr); помогло. Хотя немного не понятно, SmallInt в Integer должен переходить.
Zeraim вне форума Ответить с цитированием
Старый 25.12.2009, 01:48   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var FromLen:Integer
там нужна именно переменная или nil
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в статье = ошибка в рограмме. Alex Cones Общие вопросы Delphi 14 29.07.2009 18:17
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI Алексей_xXx Помощь студентам 2 29.05.2009 00:09
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44