sendto(), und Unix Domain Sockets

Post Reply
Message
Author
ElBlues
Posts: 127
Joined: 25. Mar 2008 12:50
Contact:

sendto(), und Unix Domain Sockets

#1 Post by ElBlues »

Hi,

ich bin hier in einem Programm auf etwas gestoßen, was ihc uzmindest merkwürdig finde.

Es werden zwei Unix Domain Sockets /tmp/sock1 und /tmp/sock2 angelegt, über welche Threads miteinander kommunizieren. An diese Sockets werden dann per sendto() irgend welcher Daten geschickt.

Was ich daran dubios finde: für den ersten Parameter in send() wird ein und der selbe Socket verwendet.

Ist sowas zulässig oder sollte ich nicht zwei separate Sockets für die beiden unterschiedlichen Sendekanäle haben?
http://www.kaufkauf.net - nie wieder Einkäufe vergessen!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Kein Ahnung was du da machst,. aber Sockets sind im Gegensatz zu Named Pipes grundsätzlich bidirektional und vollduplexfähig. Um zwei Prozesse miteinander kommunizieren zu lassen braucht man also immer nur einen einzelnen Socket.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

ElBlues
Posts: 127
Joined: 25. Mar 2008 12:50
Contact:

#3 Post by ElBlues »

Nicht mein Code, ich wäre auf so eine Idee nicht gekommen :-)

In diesem Beispiel sind ja drei Prozesse im Spiel: der Sender, welcher _einen_ Socket benutzt um die Daten per sendto() mal an den einen und mal an den anderen Empfänger zu schicken. Ich persönlich hätte für jede der beiden Senderichtungen jetzt ja einen separaten Socket angelegt. Allerdings frage ich mich an inabetracht dieses seltsamen Konstruktes, ob diese Socket-Sparerei jetzt wirklich zulässig oder einfach nur Müll ist.
http://www.kaufkauf.net - nie wieder Einkäufe vergessen!

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Je einen Socket pro Senderichtung zu haben ist Müll.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply