Kezdőoldal » Számítástechnika » Programozás » Van egy tcp szerverem s...

Van egy tcp szerverem s kliensem. Hogyan tudnám megoldani, hogy a kliens ha kap uzenetet irassa ki viszont ha nem akkor a kliens küldjön üzenetet?

Figyelt kérdés
Eljutottam oda,hogy ha egyszer küld a kliens akkor utána tud fogadni is. De folyamatosan kéne figyelje a kapcsolatot és ha kap üzenetet irja ki. Probáltam a read függvénnyel meghatározni hogy valaki küldött e valamit de mindig beakadt ott a program. Kérlek segitsetek.

2017. jan. 8. 20:59
 1/10 anonim ***** válasza:
Nyilván a read blokkol. Tedd külön szálra.
2017. jan. 8. 21:57
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
Egy socketnél amúgy is folyamatosan figyelni kell, hogy van-e kapcsolat.
2017. jan. 9. 00:35
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
90%

Na szóval akkor hálózati alapismeretek következnek.


Először is, a kommunikációnak három fő fajtája van:

- szimplex (egyirányú) kapcsolat: a kommunikáció során az adat csak egy irányba halad a kapcsolat megszűnéséig. Ez azt jelenti, hogyha A és B kapcsolatban állnak, akkor végig csak A pofázik, B pedig figyeli, hogy A mit mond. Hallgattál már rádiót? Na, ott pont ez a helyzet. A rádiós pofázik neked, te pedig nem nagyon tudsz pofázni a rádiósnak.

- half duplex kapcsolat: a két fél egyaránt küldhet és fogadhat adatot, de nem egyszerre. Tehát amíg A pofázik, addig B hallgat, de amíg B pofázik, A hallgat. Egy tisztességes beszélgetés során pontosan ez történik, nem illik belevágni a másik ember szavába. Ha beszélgettetek már walkie-talkie-n, na, az pont ez.

- full duplex kapcsolat: egyszerre pofázhat és hallgathat mindkét fél.


A kérdés kritikus pontja a read(). Ez ugyanis blokkolja a programod szálát, amíg nincs adat a pufferben. Szóval nem azt kellene csinálni, hogy a read()-del várok addig, amíg nincs adat, hanem figyelem azt, hogy a pufferben van-e beolvasható adat, és ha nincs, akkor tudok küldeni.

2017. jan. 9. 00:44
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
0%

3: Amit írtál, annak semmi köze ahhoz, amit a kérdező tudni akar.

'Hálózati alapismeretek' címén elkezdesz büfögni fél duplexről, meg hasonlókról?


A kérdezőnek: Azt kell biztosítanod, hogy a kapcsolat ne záruljon le. Ezt elérheted azzal, hogy rendszeresen küldesz/fogadsz egy-egy byte-ot. Ha pedig az kell, amit szeretnél, akkor küldesz pl. egy olyan karaktert, vagy karakterláncot, amit a szerver értelmez és kész.

2017. jan. 9. 02:29
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
Ki mondta, hogy lezárul a kapcsolat?
2017. jan. 9. 03:01
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
0%

"Ki mondta, hogy lezárul a kapcsolat?"


Én mondom, hogy lezárulHAT. Mivel nem tudom milyen protkót használ, de adott esetben egy idő után az oprendszer magától lezárja a socketet. ha nincs rajta forgalom.

Ezért szoktak pl. ftp-n 'keep alive' csomagokat küldeni.

2017. jan. 9. 08:05
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

pen-dragon amit irsz az nem hulyeseg (kivetelesen), viszont a kerdeshez nem sok koze van annak, hogy lezart-e a kapcsolat vagy sem.


A kerdezonel ott a gond, hogy egyszerre nem tud listenelni es reagalni + kuldeni. Mivel (ahogy mar emlitettek) szinte biztos, hogy 1 szalon probalja megoldani a dolgot.

2017. jan. 9. 09:45
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
0%

"pen-dragon amit irsz az nem hulyeseg (kivetelesen),"


Kétlem, hogy az itt megfordulók zöme képes volna megitélni a válaszaimat. Te is ezek közé tartozol, igazolván ezt az előbbi hozzászólásoddal, például.

2017. jan. 9. 11:12
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
Javaslom, hogy jelentsd fel!
2017. jan. 9. 11:16
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:
Mindenkinek köszönöm a válaszát.A kapcsolat nem zárul le, viszont tényleg ott a probléma, hogy egy szálon probáltam megoldani a küldést és fogadást. Az kéne megoldjam h figyelje, a kliens hogy van e neki szánt üzenet és ha nincs akkor küldjön ő egyet.
2017. jan. 11. 14:42

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!