![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение данных !!! [D6, Win2k]
Sils © (2003-03-17 14:05:00)Почему не приходят данные ?
var
wsa:twsadata;
sock:tsocket;
x:integer;
adr,cln:sockaddr_in;
dt:integer;
client:TSockAddrIn;
----------------------------------------------
wsastartup($101,wsa);
sock:=socket(af_inet,SOCK_stream,IPPROTO_ip);
adr.sin_family:=af_inet;
adr.sin_port:=htons(4004);
adr.sin_addr.S_addr:=htonl(INADDR_ANY);
bind(sock,adr,sizeof(adr));
listen(sock,1);
dt:=sizeof(client);
accept(sock,@client,@dt);
затем в цикле читаю
procedure datatrans;
var
i,data:integer;
c:integer;
bf:array[0..32] of char;
buf:string;
begin
while true do
begin
bf:=#0;
recv(sock,bf[1],sizeof(bf),0);
end;
end;
Так вот bf никогда ничего не содержит ??? !!!!
Sils (2003-03-19 15:21:00) [1]СПАСИБО !!!!
Digitman (2003-03-18 12:58:00) [2]а говоришь - понял)
тот хэндл , что возвращает ф-ция accept(), и следует как раз использовать во всех вызовах транспортных ф-ций (send(), recv() и пр.) ... а не тот , что у тебя в sock лежит - это хэндл "слушающего" гнезда
Sils (2003-03-18 12:47:00) [3]если нет ошибок, функция возвращает значение типа сокет ...
а вот дальше я немного не понял :-)
Digitman (2003-03-18 12:44:00) [4]
> Sils
Изучил, говоришь ?)
Ну давай тогда докладай свое видение фразы :
If no error occurs, accept returns a value of type SOCKET which is a descriptor for the accepted socket
Sils (2003-03-18 12:32:00) [5]Изучил....
Но ошибки не нашел !!! Помогите плз...
Digitman (2003-03-17 14:11:00) [6]не оттуда читаешь !
внимательно изучи описание ф-ции accept() ! Именно - функции !!!