Unix Socket – Server Examples

reklámok

ahhoz, hogy egy folyamat TCP szerver legyen, követned kell az alábbi lépések −

  • hozzon létre egy foglalatot a Socket() rendszerhívással.

  • kösse össze a foglalatot egy címhez a bind() rendszerhívás segítségével. Az interneten található kiszolgálóaljzat esetében a cím a gazdagép portszámából áll.

  • Hallgassa meg a listen() rendszerhívással való kapcsolatot.

  • kapcsolat elfogadása az accept() rendszerhívással. Ez a hívás általában addig blokkol, amíg az ügyfél nem csatlakozik a kiszolgálóhoz.

  • adatok küldése és fogadása a read() és write() rendszerhívások segítségével.

most tegyük ezeket a lépéseket forráskód formájában. Tegye ezt a kódot a fájlkiszolgálóba.c és fordítsd le a gcc fordítóval.

több kapcsolat kezelése

annak érdekében, hogy a szerver több egyidejű kapcsolatot kezelhessen, a fenti kódban a következő változtatásokat hajtjuk végre −

  • az accept utasítást és a következő kódot végtelen hurokba helyezzük.

  • a kapcsolat létrejötte után hívja a fork() függvényt egy új folyamat létrehozásához.

  • a gyermek folyamat bezárja sockfd és hívja doprocessing függvény, átadva az új socket fájl leíró argumentumként. Amikor a két folyamat befejezte a beszélgetést, amint azt a doprocessing() visszatérés jelzi, ez a folyamat egyszerűen kilép.

  • a szülő folyamat bezárja newsockfd. Mivel ez a kód végtelen hurokban van, visszatér az accept utasításhoz, hogy megvárja a következő kapcsolatot.

a következő kódsor a doprocessing funkció egyszerű megvalósítását mutatja.

reklámok



Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.