Форум: "Сети";
Текущий архив: 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.44 MB
Время: 0.156 c