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

Вниз

Сокеты Win32   Найти похожие ветки 

 
SkyRanger ©   (2003-05-17 08:07) [0]

Делаю так как написанно в книге: (правда там примеры на Си, но это фигня)

var
buf:string;
re : integer;
s : TSocket;
s1 : TSocket;
addr : TSockAddrIn;
begin


addr.sin_family:=AF_INET;
addr.sin_port:=htons(7500);
addr.sin_addr.S_addr:=htonl( INADDR_ANY );

try
s := socket(AF_INET, SOCK_STREAM, 0 );
except
ShowMessage("EXCEPT! Ошибка вызова socket:"+IntToStr(re)+" "+GetLastErrorStr());
end;

if (s<0) then ShowMessage("ошибка вызова socket:"+IntToStr(re)+" "+GetLastErrorStr());


try
re := bind( s, addr, sizeof( addr ) );
except
ShowMessage("EXCEPT! Ошибка вызова bind:"+IntToStr(re)+" "+GetLastErrorStr());
end;

if (re <> 0) then ShowMessage("ошибка вызова bind:"+IntToStr(re)+" "+GetLastErrorStr());


try
re := listen( s, 5 );
except
ShowMessage("EXCEPT! Ошибка вызова listen:"+IntToStr(re)+" "+GetLastErrorStr());
end;

if (re <> 0) then ShowMessage("ошибка вызова listen:"+IntToStr(re)+" "+GetLastErrorStr());

try
s1 := accept( s, NIL, NIL );
except
ShowMessage("EXCEPT! Ошибка вызова accept:"+IntToStr(re)+" "+GetLastErrorStr());
end;

if (re <> 0) then ShowMessage("ошибка вызова accept:"+IntToStr(re)+" "+GetLastErrorStr());


try
re:=recv(s1,buf,1,0);
except
ShowMessage("EXCEPT! Ошибка вызова recv");
end;

if (re < 0) then ShowMessage("ошибка вызова recv:"+IntToStr(re)+" "+GetLastErrorStr())
else
ShowMessage(buf);

end;


Он мне выдает ошибку 10093 WSANOTINITIALISED...
Я сделал все как в книге, так что должно работать а не работает! что тут может быть???

Книгу можете качнуть отсюда skyr.newmail.ru


 
Malder ©   (2003-05-17 11:00) [1]

Сейчас придет Digitman и будет грязно ругаться по английски :-)

to SkyRanger
А где WSAStartup/WSACleanup ?


 
SkyRanger ©   (2003-05-17 12:05) [2]

А конкретнее В КНИГЕ ТАК НАПИСАННО! Ща конечно гляну че это за звери, но желательно конкретнее...

>>Сейчас придет Digitman и будет грязно ругаться по английски :-)
А это почему???


 
Malder ©   (2003-05-17 12:24) [3]

Ага, глянь что за зверь, лучше статьи почитай...

>>Сейчас придет Digitman и будет грязно ругаться по английски :-)
А это почему???


Любит он это дело :-)


 
SkyRanger ©   (2003-05-17 12:28) [4]

Спасибо!
Все заработало!
Просто примеры под Unix а там дело немногопо другому обстоит! И в книге нефига не сказанно! :(


 
Digitman ©   (2003-05-19 08:51) [5]


> Malder


))

ну ты прямо из меня монстра какого-то делаешь)))


> SkyRanger


"Все заработало", говоришь ?)

И блоки exept - тоже ??!) Да ни в жисть !!)

"И в книге нефига не сказанно", говоришь ?)

Правильно, не сказано !)

Открываем хэлп на, например, ф-ции listen (да практически - на любой из ф-ций WinsockAPI) и читаем внимательно :

Return Values

If no error occurs, listen returns zero. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.

И где здесь хоть какое-либо упоминание об ObjectPascal-исключениях ?)

Ну и как же "ругаться" опосля этого ?) по-аглицки ?) или по-непоаглицки , но аглицким прононсом ?)




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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
14-78071
KDS
2003-07-07 19:14
2003.07.24
dephi тут вообще непричем!


7-78181
zom
2003-05-15 12:47
2003.07.24
Как узнать текущее разрешение экрана?


3-77793
Empleado
2003-07-01 16:38
2003.07.24
ADO и Treading Model (в Мидасе)


4-78183
Alexander
2003-05-22 09:28
2003.07.24
Можно как-то узнать из dll где она располагается?


6-78035
SkyRanger
2003-05-17 08:07
2003.07.24
Сокеты Win32