[ Pobierz całość w formacie PDF ]
.Po takiej operacji np.dla funkcji accept będziemy musieli używać pętli (najlepiej dodatkowo użyć sleep(100) wewnątrz pętli) i sprawdzać czy zwrócona wartość jest większa od 0 (jeśli tak to znaczy, że jest to nowo utworzone gniazdko), natomiast send i recv zwrócą 0 jeśli połączenie zostanie zerwane a -1 gdy nie otrzymają żadnych danych (to wspomniana już innowacja firmy Małemiękkie).Na zakończenie dwie funkcje używane do zakończenia pracy z gniazdkami.SHUTDOWNssocket:integer; how:integer; shutdown(ssocket,how); - funkcja zamyka część lub całość połączenia.W zależności od wartości parametru how dzieje się to na różne sposoby: 0 - wyłączana jest możliwość czytania z gniazdka, 1 - wyłączana jest możliwość pisania do gniazdka, 2 - wyłączana jest możliwość czytania i pisania.Po użyciu tej funkcji nie są zwalniane zasoby związane z gniazdkiem chociaż obecna implementacja biblioteki winsock.dll nie pozwala na użycie funkcji connect na tak zamkniętym gniazdku.CLOSESOCKETssocket:integer; closesocket(ssocket); - ostatecznie zwalnia pamięć i zasoby skojarzone z gniazdkiem, używa się jej po wywołaniu funkcji shutdown.Przykład programu oraz prostego algorytmu serwera znajduje się w listingu 1, a klienta w listingu 2 [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl milosnikstop.keep.pl
.Po takiej operacji np.dla funkcji accept będziemy musieli używać pętli (najlepiej dodatkowo użyć sleep(100) wewnątrz pętli) i sprawdzać czy zwrócona wartość jest większa od 0 (jeśli tak to znaczy, że jest to nowo utworzone gniazdko), natomiast send i recv zwrócą 0 jeśli połączenie zostanie zerwane a -1 gdy nie otrzymają żadnych danych (to wspomniana już innowacja firmy Małemiękkie).Na zakończenie dwie funkcje używane do zakończenia pracy z gniazdkami.SHUTDOWNssocket:integer; how:integer; shutdown(ssocket,how); - funkcja zamyka część lub całość połączenia.W zależności od wartości parametru how dzieje się to na różne sposoby: 0 - wyłączana jest możliwość czytania z gniazdka, 1 - wyłączana jest możliwość pisania do gniazdka, 2 - wyłączana jest możliwość czytania i pisania.Po użyciu tej funkcji nie są zwalniane zasoby związane z gniazdkiem chociaż obecna implementacja biblioteki winsock.dll nie pozwala na użycie funkcji connect na tak zamkniętym gniazdku.CLOSESOCKETssocket:integer; closesocket(ssocket); - ostatecznie zwalnia pamięć i zasoby skojarzone z gniazdkiem, używa się jej po wywołaniu funkcji shutdown.Przykład programu oraz prostego algorytmu serwera znajduje się w listingu 1, a klienta w listingu 2 [ Pobierz całość w formacie PDF ]