2016-12-21 3 views
1

Ich verwende boost::asio, TCP communication und C++, um einen Client und einen Server zu erstellen, die über eine sprechen. Ich brauche sowohl den Client als auch den Server, um Daten senden und empfangen zu können. Ich bin in der Lage, sie eine Steckdose zu machen zu kommunizieren, wo der Server kontinuierlich einige Daten sendet und der Client kontinuierlich auf dem Sockel liest. Es klappt.boost :: asio :: tcp Zwei-Wege-Kommunikation auf einem Sockel

Jetzt für die andere Wege-Kommunikation:Für Client einige Daten und den Server zu senden, es lesen zu können, kann ich die gleiche Buchse für diesen Einsatz? Oder muss ich eine separate Steckdose verwenden? Ist es möglich, für zwei Anwendungen, die über TCP kommunizieren, auf demselben Socket zu lesen und zu schreiben?

A boost :: asio basierend Beispiel zu veranschaulichen dies wird groß sein, wenn vorhanden. Aber ich kann Beispiele finden, bei denen es nur um einseitige Kommunikation geht.

+4

Was stimmt nicht mit den Beispielen auf der Boost-Seite? Ich würde mit dem asynchronen Echo-Server beginnen. – mkaes

+0

alle Boost-Beispiele sind um einen Client-Server-Ansatz. Ich bin nicht sicher, ob einige der Beispiele bidirektionale Kommunikation demonstrieren. Überprüfen des Beispiels für das Echo-Server –

Antwort

2

Für Client einige Daten &-Server zu senden, es lesen zu können, kann ich die gleiche Buchse für diesen Einsatz? Oder muss ich eine separate Steckdose verwenden? Ist es möglich, für zwei Anwendungen, die über TCP kommunizieren, auf demselben Socket zu lesen und zu schreiben?

Ja. TCP ist Vollduplex. Anwendungen definieren das Protokoll darüber, wie/wie Nachrichten zwischen Client und Server ausgetauscht werden. Egal ob asynchron oder synchron, TCP ist es egal.

1

Das Client-Server-Paradigma in TCP ist ein, wo der Kunde wartet auf eingehende Verbindungen, die Verbindung und der Server initiiert. Sobald TGE-Verbindung hergestellt wird, ist es bis zu höheren Layer-Protokoll wie http festzustellen, wie Daten ausgetauscht werden. Soweit es TCP betrifft, können sowohl der Client als auch der Server Daten auf beliebige Weise senden oder empfangen. Tcp ist Vollduplex.