Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Socket kiedy zamykac połączenie close() ?


damianq20

Rekomendowane odpowiedzi

Opublikowano

jak zamykać połączenie wiem ale nie wiem kiedy je zamykać

przykład tworzę obiekt Socket i nawiązuje połączenie chcąc móc wysyłać i odbierać dane,  i teraz najważniejsze czy za każdym razem jak coś wyślę mam zamykać połączenie a potem otwierać je na nowo czy zostawić je otwarte i cały czas nasłuchiwać,

przeglądając przykładowe elementy korzystające z socket często widziałem że Socket jest tworzony aby wysłać pojedynczą paczkę danych po czym jest zamykany (nawet jeśli występuje ciągła komunikacja między serwerami), natomiast na przykładkach socket cały czas nasłuchiwał w pętli

Opublikowano
  1. Wtedy gdy serwer chce zakończyć połączenie.
  2. Wtedy gdy klient chce zakończyć połączenie.
  3. Wtedy gdy klient (lub w sumie serwer, zależy od tego co piszesz) przestanie odpowiadać i minie jakiś timeout.

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Opublikowano

to co napisałeś ok standard .ale spotkałem się z praktyką aby tworzyć nowego socket za każdym razem gdy chce wysłać pojedynczą paczkę danych (i w sumie dość często się to powtarzało w różnych projektach które przeglądałem), po czym od tak zamykać połączenie. a w dokumentacji socket połączenie jest otwierane raz i cały czas nasłuchuje przychodzących danych. z tąd pytanie co jest lepszym wyjściem. otwierać nowe połączenie za każdym razem gdy chce coś wysłać czy utrzymać stałe połączenie między serwerem .

Opublikowano

Jeśli implementujesz FTP to po przesłaniu danych możesz (nawet powinieneś zapewne) zakończyć połączenie. Jeśli piszesz grę RPG to połączenie trzymasz. Wszystko zależy od Ciebie, a reguły to regulujące napisałem powyżej. Projekty znalezione w internecie nie powinny być dla Ciebie wyrocznią, niektórzy programiści mają dziwne pomysły. Czytaj publikacje.

Dodaj mój nick do posta jeśli potrzebujesz pomocy | Piszę pluginy na zlecenie | Pomagam z Linuxem

newlogo.png

Opublikowano
4 godziny temu, damianq20 napisał:

to co napisałeś ok standard .ale spotkałem się z praktyką aby tworzyć nowego socket za każdym razem gdy chce wysłać pojedynczą paczkę danych (i w sumie dość często się to powtarzało w różnych projektach które przeglądałem), po czym od tak zamykać połączenie. a w dokumentacji socket połączenie jest otwierane raz i cały czas nasłuchuje przychodzących danych. z tąd pytanie co jest lepszym wyjściem. otwierać nowe połączenie za każdym razem gdy chce coś wysłać czy utrzymać stałe połączenie między serwerem .

 

7 minut temu, MarcinWieczorek napisał:

Jeśli implementujesz FTP to po przesłaniu danych możesz (nawet powinieneś zapewne) zakończyć połączenie. Jeśli piszesz grę RPG to połączenie trzymasz. Wszystko zależy od Ciebie, a reguły to regulujące napisałem powyżej. Projekty znalezione w internecie nie powinny być dla Ciebie wyrocznią, niektórzy programiści mają dziwne pomysły. Czytaj publikacje.

Pisząc dość prosto...

Trzymając połączenie zwiększasz zużycie zasobów, ale wysłanie pakietu jest natychmiastowe.
Zamykając połączenie zmniejszasz zużycie zasobów, ale wysłanie pakietu to już problem, bo trzeba nawiązać połączenie, a to trwa.

Więc musisz to dostosować do swoich potrzeb.

1438614356923701010629.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...