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

Вниз

UDP socket   Найти похожие ветки 

 
Beerlover   (2003-04-13 20:37) [0]

При приеме ответа из сокета, buf становиться нулевым, в то время как ааа(байт принято)=232. Далее при попытке изменить размер buf происходит сбой...

tv.tv_sec:=1; // таймаут ответа сервера
tv.tv_usec:=0; //
WSAStartup($20,wsa);
serv_addr.sin_family := AF_INET;
serv_addr.sin_port := htons(53);
serv_addr.sin_addr.S_addr := inet_addr(PChar("192.168.16.1"));
sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if sock<0 then
begin
Messagedlg("Ошибка создания сокета",mtError,[mbOk], 0) ;
WSACleanup( );
exit;
end;

//Создание виртуального канала
error := connect(sock, serv_addr, sizeof(serv_addr));
if error <0 then
begin
Messagedlg("Ошибка подключения",mtError,[mbOk], 0) ;
WSACleanup( );
exit;
end;
setlength(buf, 29);
buf[0]:=#0;
buf[1]:=#1;
buf[2]:=#0;
buf[3]:=#0;
buf[4]:=#0;
buf[5]:=#1;
buf[6]:=#0;
buf[7]:=#0;
buf[8]:=#0;
buf[9]:=#0;
buf[10]:=#0;
buf[11]:=#0;
buf[12]:=#3;
buf[13]:="w";
buf[14]:="w";
buf[15]:="w";
buf[16]:=#4;
buf[17]:="m";
buf[18]:="a";
buf[19]:="i";
buf[20]:="l";
buf[21]:=#2;
buf[22]:="r";
buf[23]:="u";
buf[24]:=#0;
buf[25]:=#0;
buf[26]:=#1;
buf[27]:=#0;
buf[28]:=#1;
error := send(sock, buf[0], length(buf),0);
if error<0 then
begin
exit;
Messagedlg("Ошибка отправки данных",mtError,[mbOk], 0) ;
WSACleanup( );

end;

// Ждем ответа от сервера
FD_ZERO(wfds);
FD_SET(sock,wfds);

select(sock,@wfds,nil,nil,@tv);
if FD_ISSET(sock,wfds) then
begin
FD_CLR(sock,wfds);
setlength(buf, 512);
aaa:=recv(sock, buf, length(buf), 0);
if aaa<0 then Messagedlg("Сбой получения ответа сервера",mtError,[mbOk], 0);

setlength(buf,aaa);
// закрываем сокет
closesocket(sock);
WSACleanup( );
end;


 
erikivaov   (2003-04-14 19:17) [1]

Используй Indy и ненаживеш гемороя.


 
Zz_   (2003-04-14 19:30) [2]

>>error := send(sock, buf[0], length(buf),0);
>>aaa:=recv(sock, buf, length(buf), 0);

может тут тоже надо buf[0] ?



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
3-50261
KIE
2003-05-25 22:30
2003.06.16
DBGrid + значение ячейки и имя поля


1-50311
borg
2003-06-02 06:19
2003.06.16
Кодирование


1-50393
OlegM
2003-06-04 13:52
2003.06.16
1 PopupMenu и несколько компонентов


1-50314
Ghost
2003-06-03 10:10
2003.06.16
как сохранить всю информацию из ListView на диск ?


1-50392
midi
2003-06-04 12:02
2003.06.16
как правильно использовать CLX компоненты в Dll/Package