Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

sendto проблемы!   Найти похожие ветки 

 
Chubais   (2005-04-11 02:13) [0]

Доброго времени суток!

В общем-то нужно передавать структуру частями... т.к. она слишком большая для посылки за 1 раз. Делаю так:


procedure SendData(ip: string; data: struct);
const ANSWER_SIZE = 1460;
var sin :Tsockaddr;
   s   :TSocket;
   lsin, ldata: integer;
label no_mod, bye_bye;
begin
 s := socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
 if s = INVALID_SOCKET then begin
    exit;
 end;

 sin.sin_family := AF_INET;
 sin.sin_port := htons(6483);
 sin.sin_addr.S_addr := inet_addr(pChar(ip));

 ldata := sizeof(data);
 lsin  := sizeof(sin);

 asm
   mov eax, ldata
   mov esi, offset data
   mov ecx, ANSWER_SIZE
   xor edx, edx
   div ecx
   mov ebx, eax
   cmp edx, 0
   jz no_mod
   mov edi, edx
   cmp ebx, 0
   jz no_mod
   dec edi
   no_mod:
   push lsin
   push offset sin
   push 0
   push edi
   push esi
   push s
   call sendto
   cmp eax, SOCKET_ERROR
   jnge bye_bye
   mov edi, ANSWER_SIZE
   add esi, ANSWER_SIZE
   dec ebx
   cmp ebx, -1
   jg no_mod
   bye_bye:
 end;      

 closesocket(s);
end;


ф-ция sendto - возвращает оочень странное число! но не SOCKET_ERROR! И УДП датаграмма не доходит естест-но. Укажите мастера, что не так. В делфи я не силен, но знаю что с указателями там траблы, но если ы можете сделать данный код без использования асма - то это приветствуется!

Благодарен!


 
Digitman ©   (2005-04-11 08:33) [1]


> знаю что с указателями там траблы


и какие-же, позвольте осведомиться ?



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

Форум: "Сети";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
5-1089577224
Sliski Slimak
2004-07-12 00:20
2005.07.18
Перемещение компонента как в Delphi


1-1119695069
TW
2005-06-25 14:24
2005.07.18
Работа с TObjectList


14-1118736038
lookin
2005-06-14 12:00
2005.07.18
О социальной политике на Украине


1-1119876328
LLlMblra
2005-06-27 16:45
2005.07.18
Определение ширины строки в пикселах


1-1119655025
Канвас
2005-06-25 03:17
2005.07.18
Как сделать надпись на картинке через Canvas, чтобы она была проз





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский