Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
1-1119682185
syte_ser78
2005-06-25 10:49
2005.07.18
проверка на наличие в списке комбобокса записи


14-1119348247
DillerXX
2005-06-21 14:04
2005.07.18
Delphi2C


3-1118149412
Destup
2005-06-07 17:03
2005.07.18
пример TStoredProc


1-1120317333
Brack
2005-07-02 19:15
2005.07.18
Как програмно вывести N обьектов


4-1116872927
alex-drob
2005-05-23 22:28
2005.07.18
Проверка SetWindowsHookEx




   Наверх