[ Goran Vucic @ 30.01.2005. 18:47 ] @
| Meni samo jedna stvar nije jasna...
Kada kreiram socket [sa socket()], i kada se konektujem [sa connect()], i kada zatvorim socket [sa closesocket()], da li to znaci da je moj socket 'oslobodjen', i da moram ponovo da ga kreiram, sa socket(), ako zelim ponovo da se konektujem ?
Cemu sluzi shutdown() funkcija?
Ona zaustavlja protok?
A ne prekida konekciju?
Dakle, da rezimiram svoje pitanje:
- koliko sam ja shvatio, kada hocu da prekinem konekciju i ponovo je uspostavim [sa drugim serverom recimo] - onda - koristim closesocket(), i onda moram opet da kreiram socket sa socket() ?
Da ili Ne ?
I drugo pitanje - cemu onda sluzi shutdown(), i kada se koristi ? |
[ obranko @ 31.01.2005. 00:45 ] @
shutdown se koristi za delimicni prekid veze (u jednom smeru, mada moze i u oba). ako klijent posalje zahtev serveru, posle poslednjeg zahteva klijent bi trebao da pozove shutdown(socketId, 1) sto znaci da nece vise slati zahteve ali socket ostaje otvoren za prijem podataka. kada server posalje sve zahtevane odgovore on poziva close. protokol sada moze da zatvori socket.
[ Dragi Tata @ 31.01.2005. 02:20 ] @
Ukratko, shutdown se koristi pre closesocket da bi se izbegao eventualan gubitak podataka kod naglog prekida veze. Više o tome ovde:
http://msdn.microsoft.com/libr...tions_and_socket_closure_2.asp
[ ivbrcic @ 31.01.2005. 09:32 ] @
mozes pogledati i na slijedecoj adresi:
[url]
http://www.core-dump.com.hr/documents/API_TCP-IP.pdf [/url]
seminar u kratko opisuje osnovne stvari vezan za socket.
[ Goran Vucic @ 31.01.2005. 10:32 ] @
OK, to za shutdown() sam shvatio.
Ostaje prvo pitanje - kada zatvorim socket sa closesocket(), on vise nije upotrebljiv, i da bih ga opet koristio, moram opet da ga kreiram, funkcijom socket() ?
Da ili ne ?
[ Buffy @ 31.01.2005. 14:39 ] @
Citat:
Goran Vucic:
Ostaje prvo pitanje - kada zatvorim socket sa closesocket(), on vise nije upotrebljiv, i da bih ga opet koristio, moram opet da ga kreiram, funkcijom socket() ?
Da ili ne ?
Provjeri sam!
Kad zatvoris socket pokusaj da se konektujes,pa ako ne moze onda je sigurno da moras da koristis funkciju socket().
[ Goran Vucic @ 31.01.2005. 17:31 ] @
Code:
$ ./examples/simple_tcp_client.exe
Connecting to the localhost @ 80
Connected
Sent: Hi server!
Server: ok
Closing connection
Connecting to the localhost @ 80
Error: connect()
end of story...
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.