Verständnisfrage Socktets und Filedeskriptoren
-
Hallo!
Bevor ich zu meinem Problem komme, möchte ich erwähnen, dass ich mehr Noob als Fortgeschrittener bin.Also, es geht sich um folgendes: Ich möchte gerne einen Server schreiben (der Netzservices serviert), dieser soll aus Performancegründen natürlich mit Blocking-Calls realisiert werden. Da bietet sich die Funktion select() wohl sehr gut an.
Das wäre ja alles ganz easy, gäbe es da nicht noch ein weiteres Problem: Der Server soll nicht nur einen Zugang raus ins Internet haben, sondern währenddessen auch mit der seriellen Schnittstelle kommunizieren (der Server ist sozusagen eine Schnittstelle zwischen serieller Schnittstelle und dem Netzwerk).
Da kam ich auf die dumme Idee, dass Filedeskriptoren (wie der der seriellen Schnittstelle) das gleiche wie Sockets sein könnten. Da kenne ich mich leider nicht aus. Ist da irgendwas dran? Kann ich auch andere Devices als Sockets mit select() behandeln?Wie würdet ihr einen solchen Server denn realisieren, wie soll ich den aufbauen?
Vielen, vielen Dank schon einmal für eure Hilfe!
PowerProgrammer
-
select funktioniert mit filedescriptoren. sockets sind filedescriptoren, sodass das also fix klappt. wenn du das programm ausschließlich für linux machst, könntest du dir epoll ansehen. das ist viel einfacher und hat auch performance-mäßig vorteile.