Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сокеты Win32 [D6, WinXP]


SkyRanger ©   (2003-05-17 08:07:00) 

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

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


Digitman   (2003-05-19 08:51:00) [1]


> 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-исключениях ?)

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


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

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


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

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

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


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


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

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

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


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

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

to SkyRanger
А где WSAStartup/WSACleanup ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо