Unix TCP socket programozás C-ben, pontosan hogyan is megy ez? Lenne pár kérdésem.
hy!
házit írok (C-ben) és van pár dolog ami nem tiszta.
feladatom egy "hálózat alapú szöveges kalandjáték" (TCP socket stream a két részprogram között, a szerver részben van az adatbázis, a kliens meg kezeli a bemenetre kapott válaszokat).
Ebből a pdf-ből néztem ki a kódnak a "statikus" részét (37-45 oldal): [link]
Problémám(43.oldal):
for (;;) {
csd = accept(msd, 0, 0);
if (fork() == 0) {
close(msd);
if ((i=read(csd,buf,sizeof(buf))) > 0){
write(csd, buf, i); printf(buf);
}
Ez a kód pontosan mit csinál?
Mert close(msd) nekem nem egészen tiszta (lehet, h lezárja a portot, h több ember ne várakozhasson rajta?)
A for(;;) mikor fog megszakadni? ha shutdownal lövöm le a klines feléről a kapcsolatot? vagy ez végtelenül fog futni amíg kézzel le nem állítom a processzt?
Valamint az if ((i=read(csd,buf,sizeof(buf))) > 0)
lényegét csak sejtem-> akkor lép a feltétel belsejébe, ha tényleg fogadtunk vmit?
gyakran olvasgatom majd a válaszokat, ha lesznek, és pontosítom a kérdést, ha kicsit kusza lett.
kössz!





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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!