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

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

WSASocket [D7]


Pavel ©   (2004-06-03 20:41:00) 

Уважаемые мастера. Вопрос такой. Какая разница между функциями WSASocket и socket. И вообще что значит эта приставка WSA?  И почему в файле winsock.dcu WSASocket не определено?


Verg   (2004-06-04 12:47:00) [1]

Тем не менее, Winsock2 можно взять на
http://home.earthlink.net/~akonshin/delphi_ru.htm


Verg   (2004-06-04 12:45:00) [2]

Я думаю, что WSASocket нужен только в контексте WSADuplicateSocket.
Асинхронные режимы устанавливаются у сокетов отдельно ф-циями WSAEventSelect и WSAAsyncSelect и для этого вовсе необязатьельно лезть в Winsock2.


Григорьев Антон   (2004-06-04 12:37:00) [3]


> Digitman ©   (04.06.04 08:15) [8]
>
> > Pavel   (04.06.04 00:41) [7]
>
>
>
> > В каком модуле онисана проседура WSASocket
>
>
> winsock2.pas


А где этот самый WinSock2.pas взять? У меня на компьютере полная коллекция Delphi от 3-ей до 7-ой версии, и нигде его нет. Есть только WinSock.pas, в котором поддержка Windows Sockets 1.1.


Digitman   (2004-06-04 08:15:00) [4]


> Pavel   (04.06.04 00:41) [7]



> В каком модуле онисана проседура WSASocket


winsock2.pas


Pavel   (2004-06-04 00:41:00) [5]

За всё выше написанное большое спасибо но всё же. В каком модуле онисана проседура WSASocket. Или это есть только под C.


Rouse_   (2004-06-03 23:36:00) [6]

В Дополнение, вот тебе описание:

WSASocket
The Windows Sockets WSASocket function creates a socket that is bound to a specific transport-service provider.

SOCKET WSASocket(
 int af,
 int type,
 int protocol,
 LPWSAPROTOCOL_INFO lpProtocolInfo,
 GROUP g,
 DWORD dwFlags
);

...

WSAPROTOCOL_INFO
The Windows Sockets WSAPROTOCOL_INFO structure is used to store or retrieve complete information for a given protocol.

typedef struct _WSAPROTOCOL_INFO {
 DWORD                dwServiceFlags1;
 DWORD                dwServiceFlags2;
 DWORD                dwServiceFlags3;
 DWORD                dwServiceFlags4;
 DWORD                dwProviderFlags;
 GUID                 ProviderId;
 DWORD                dwCatalogEntryId;
 WSAPROTOCOLCHAIN     ProtocolChain;
 int                  iVersion;
 int                  iAddressFamily;
 int                  iMaxSockAddr;
 int                  iMinSockAddr;
 int                  iSocketType;
 int                  iProtocol;
 int                  iProtocolMaxOffset;
 int                  iNetworkByteOrder;
 int                  iSecurityScheme;
 DWORD                dwMessageSize;
 DWORD                dwProviderReserved;
 TCHAR                szProtocol[WSAPROTOCOL_LEN+1];
} WSAPROTOCOL_INFO, *LPWSAPROTOCOL_INFO;


---
Желаю успехов


Rouse_   (2004-06-03 23:01:00) [7]

> [4] Pavel   (03.06.04 21:29)
Тормози, видно что ты начитался, да не все понял ...
Нет такого понятия асинхронный сокет. Сокет он и в африке сокет, а вот режим ты можешь задать блокирующий, неблокирующий и асинхронный.
Аснинхронка - расширение неблокирующего режима в котором при изменении состояния гнезда ты будешь получать нотификационные сообщения от ситемы...
К примеру: готов читать, готов писать...


Pavel   (2004-06-03 21:29:00) [8]

Почему приставка WSA я разобрался. Это для асенхронных соединений. А нужен мне WSAsocket для того чтобы сделать сокет асинхронным. Но почему эта функция не описана в winsock.dcu. Может она описана в каком то другом файле. Или это вообще не входит в стандартный пакет Delphi7 ?


Rouse_   (2004-06-03 21:09:00) [9]

> [2] Micah'GF   (03.06.04 21:04)
Это ты мне?


Rouse_   (2004-06-03 21:04:00) [10]

Первые в большинстве своем представляют расширения Bercley сокета и являются асинхронными, вторые - обычные линуксовые сокеты...
(Это так, на пальцах обьяснение)


Micah'GF   (2004-06-03 21:04:00) [11]

ты путаешь с WSAStartup
WSAStartup нужно обязятельно делать перед началом использования функций Winsock - это инициализация библиотеки. В конце обязательно WSACleanup

почитай описание сокетов -- найдешь на яндексе.


Наверх

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