2017-12-31 125 views
-3

Ich wollte einen Chat-Server mit boost :: asio erstellen und da das Programm komplizierter und schwieriger für mich zu lesen ist, habe ich mich gefragt, ob es möglich ist, mehrere Sockets im selben Client und auf der Serverseite zu verwenden?Mehrfachsteckdosen in Boost asio?

Wenn ich kann mir nicht ganz klar, zum Beispiel, auf meiner Server-Seite habe ich int und string Variablen und ich möchte sie in verschiedenen Sockets senden sich nicht gegenseitig beeinflussen.

Nun ... int Variable wird durch socket1 und string ist durch socket2. Das selbe mit einer Klientenseite, dass es "wissen" sollte von welcher Steckdose int "kommt" und von welcher string. Wenn das möglich ist, wäre ich sehr froh, einige Beispiele zu sehen :)

Vielen Dank im Voraus!

+0

Ich bin nicht sicher, was Sie versuchen zu tun, aber ich bin mir ziemlich sicher, dass, was auch immer es ist, es ist eine wirklich schlechte Idee :( –

Antwort

0

das Programm wird komplizierter und schwierig für mich

lesen Sie könnten ein wenig umgestalten wollen. Selbst großer Code sollte leicht zu lesen und zu verstehen sein.

Ich habe int und String-Variablen und ich möchte sie in verschiedenen Sockets senden, die sich nicht gegenseitig beeinflussen.

Sie können einen neuen Socket für jeden Datentyp erstellen Sie senden möchten. Fügen Sie Ihrer Nachricht einen korrekten Header hinzu und parsen Sie den empfangenen Datentyp mit einer Fehlerprüfung.

Zum Beispiel (vereinfachte Fall):

std::string tx = "12345678Test"; 

std::stringstream ss(tx); 
int num; 
ss >> num; 

std::string s; 
ss >> s;