WinSock - Ladění přijímače |
![]() |
Pokud jste se někdy snažili postavit si vlastní radiopřijímač, budete překvapeni, jak je oproti tomu vybudování přijímače ve VB jednoduché. Spusťte další instanci Visual Basicu, na formulář přidejte WinSock a na událost Load formuláře zapište: Winsock1.LocalPort =
1000 Říkáme tím komponentě WinSock, aby poslouchala na frekvenci 1000 FM a čekala na zprávu. Dále přidáme trochu kódu pro vlastní komponentu WinSock. Existují zde dvě hlavní události, se kterými si pohrajeme - ConnectionRequest a DataArrival. Na událost ConnectionRequest zapište: If
Winsock1.State <> sckClosed Then Winsock1.Close Tento kód bude spuštěn pokaždé, kdy náš program obdrží požadavek na spojení, například z již dříve vybudovaného našeho klienta, který se pokouší provést metodu WinSock1.Connect. Kód se nejprve ujistí, že je WinSock "zavřený" - jinými slovy, že nekomunikuje s jiným počítačem. Pak teprve akceptuje požadavek na připojení a počítače jsou "spojeny". Následující kód přidejte na událost DataArrival: Dim strIncoming As
String Tato událost je vyvolána v okamžiku příchodu dat - po metodě WinSock1.SendData následované úspěšným spojením. První řádka vytvoří proměnou, do které se uloží došlá data. Druhá řádka uloží data do proměnné a ve třetí řádce dochází k zobrazení. TIP: V okamžiku, kdy pomocí metody GetData získáte data, jejich kopie se odstraní z paměti. Pokud se chcete na data pouze podívat bez jejich odstranění z paměti, použijte metodu PeekData. A je to ! Vytvořili jste jak program, který posílá zprávy (klient), ale i program, který je umí obdržet (server). Samozřejmě že je můžete spojit dohromady pro aplikaci jak na příjem tak i odesílání zpráv, což uděláme za chvíli. Nyní si otestujme naše projekty - spusťte obě aplikace a v klientovi zapište adresu počítače a text zprávy. TIP: Pokud spouštíte aplikace na jednom PC, můžete použít IP adresu 127.0.0.1 - ta ukazuje na Váš počítač. TIP: Je mnohem stabilnější používat IP adresy pro lokalizaci počítače než jméno stanice. Ale jak nalézt IP adresu vzdáleného počítače ? Udělejte to, co dělají ICQ aplikace - po přihlášení svou IP adresu zapíšou do databáze. Tuto adresu zjistíte pomocí vlastnosti LocalIP komponenty WinSock. Pokud tedy některý uživatel chce odeslat zprávu, podíváte se do databáze, najdete uživatelské jméno, přečtete si IP adresu a pošlete zprávu. Když se uživatel odhlašuje, je pak nutné záznam s jeho IP z databáze odstranit. Nyní na klientu klikněte na tlačítko pro odeslání zprávy a přepněte se do přijímacího programu. Pokud uvidíte zprávu, nezbývá než Vám gratulovat, neboť jste právě poslali svou první zprávu pomocí komponenty WinSock. |
![]() |
Autor: The Bozena |