Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.08;
Скачать: CL | DM;

Вниз

WinSock: глючит recvfrom   Найти похожие ветки 

 
Micah'GF   (2004-06-03 19:58) [0]

при компиляции постоянно ругается на код:
var
 Data: PChar;
 UDP_RemAdress: TSockAddr;
...
 recvfrom(sSocketGlobal, Data, 1024, 0, UDP_RemAdress, sezeof(UDP_RemAdress));

говорит: Types of actual and formal var parameters must be identical
и указывает на конец строки.. Я не могу понять какой параметр неправильно указываю...


 
panov ©   (2004-06-03 20:25) [1]

>Micah"GF   (03.06.04 19:58)
Последний параметр.

var
Data: PChar;
UDP_RemAdress: TSockAddr;
Len: Integer;
...
Len := sizeof(UDP_RemAdress);
recvfrom(sSocketGlobal, Data, 1024, 0, UDP_RemAdress, Len);


 
Micah'GF   (2004-06-03 20:57) [2]

млин.. а я голову изломал..
Спасибо.


 
Micah'GF   (2004-06-03 21:01) [3]

а... а почему recvfrom постоянно возвращает ошибку 10022 ?!
socket() возвращает нормальный сокет, и sendto работает..


 
Rouse_ ©   (2004-06-03 21:09) [4]

WSAEINVAL (10022)

Invalid argument.

Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket - for instance, calling accept on a socket that is not listening.


 
Verg ©   (2004-06-04 12:38) [5]


> Micah"GF   (03.06.04 21:01) [3]
> а... а почему recvfrom постоянно возвращает ошибку 10022
> ?!


В данном слочае ты промазал с буфером.
Предположим, что ты выделили для него память:
GetMem(Data, 1024);
Но тогда и

> Len := sizeof(UDP_RemAdress);
> recvfrom(sSocketGlobal, Data^{Внимание!}, 1024, 0, UDP_RemAdress, Len);


т.к.
function recvfrom(s: TSocket; var Buf; len, flags: Integer;
 var from: TSockAddr; var fromlen: Integer): Integer; stdcall;


 
Micah'GF   (2004-06-06 20:08) [6]

нет.. С буфером вроде все в порядке - даже делал так, но всеравно возвращает 10022...

2 Rouse_
пояснение не совсем понятно... Что я не сделал?


 
Григорьев Антон   (2004-06-07 11:35) [7]

А bind для этого сокета сделан? Хотя бы неявный?


 
Digitman ©   (2004-06-07 13:14) [8]


> С буфером вроде все в порядке - даже делал так


при указательном типе переменной, определяющей буфер, оператор разыменования ^  обязателен !


> всеравно возвращает 10022


значит. что-то не в порядке со структурой UDP_RemAdress


 
Micah'GF   (2004-06-07 19:04) [9]

ооо... спасибо!  // У меня оказывается bind закоментирован был
а я и незаметил..

Помогите переключить сокет в неблокирующий режим, а то прога виснет на recvfrom.


 
Rouse_ ©   (2004-06-08 07:54) [10]

var
 Block: Integer;
...
   Block := 1;
   ioctlsocket(FSocket, FIONBIO, Block);



Страницы: 1 вся ветка

Текущий архив: 2004.08.08;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.038 c
14-1090399797
Max Ivanych
2004-07-21 12:49
2004.08.08
А вот если пытаться открыть свою фирму?


14-1090577643
VHS
2004-07-23 14:14
2004.08.08
Ошибка при FormActivate


8-1085033105
Elysium
2004-05-20 10:05
2004.08.08
Как проиграть WAV WMA MP3 MID MOD?


1-1090784137
sdw_syscoder
2004-07-25 23:35
2004.08.08
НАДО ПРЕОБРАЗОВАТЬ !!! Y --> $XX


14-1090246065
X9
2004-07-19 18:07
2004.08.08
Linux и Window$ на одном винте.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский