• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[C++] Socket Chat problem

  • Ersteller Ersteller Gelöschtes Mitglied 3007
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
G

Gelöschtes Mitglied 3007

Guest
Guten Tag.

Ich bin C++ anfänger, und dieses "Werk" ist teielweise aus C&P entstanden und wurde dann von mir noch einmal praktisch neu geschrieben. Allerdings habe ich jetzt ein kleines problem, welches man auf volgendem bild sehen kann.

Klick hier um zum Bild zu gelangen.

Hier das ist mein Code

Server:
Socket Chat (Server) - nopaste.com (beta)

Client:
Socket Chat (Client) - nopaste.com (beta)

Vielleicht kann mir hier ja jemand sagen woran es liegt.

Das programm habe ich unter Linux mit dem befehl "g++ -o server server.cpp" bzw. "g++ -o client client.cpp" compiliert.

MFG Miah
 
Hallo,

du hast den buffer Pointer überschrieben. Die accept Zeile muss so aussehen:
Code:
new_socket = accept ( Socket, (struct sockaddr *) &service, &socketlength );
Statt &service hattest du &Socket da stehen. Das hat dir einiges hinter Socket (auch buffer) überschrieben.

N43

PS.: Wenn du statt strlen(buffer) Zeichen strlen(buffer)+1 Zeichen sendest (und max. BUF empfängst) musste das \0 Zeichen nicht mehr anhängen.
 
Vielen Dank, das hat geholfen.

Nun hab ich aber ein problem. irgendwie braucht das programm ein bisschen bis es sich so eingependelt hat, das alles gut aussieht ^^ hier mal ein beispiel

Server Log:
Code:
Socket wurde erstellt, verbinde nun mit Port...
Port: 15001
Verbindung erfolgreich!
Warte nun auf Clienten...
184.172.219.191 ist nun online!

Nachricht: 184.172.219.191:

Nachricht: Hallo
184.172.219.191: na

Nachricht: joa
184.172.219.191: bla

Nachricht: bli
184.172.219.191: blub

Nachricht: und?
184.172.219.191: passert

Nachricht: bla
184.172.219.191: joa

Nachricht:

Client Log:
Code:
Socket wurde erstellt, geben Sie nun bitte die Verbindungsdaten an.
IP: 127.0.0.1
Port: 15001
Erfolgreich mit dem Server 127.0.0.1 verbunden.

Miah:

Nachricht: Miah: Hallo

Nachricht: na
Miah: joa

Nachricht: bla
Miah: bli

Nachricht: blub
Miah: und?

Nachricht: passert
Miah: bla

Nachricht: joa

sieht irgendwie blöd aus und ich weiß leider keine lösung. könnte mir da vielleicht auch jemand helfen? hier nochmal der aktuelle source.

Server: ac7c36a3713f390 - NoPaste - Paste it here
Client: c7d36ead88644f6 - NoPaste - Paste it here

MFG Miah :)
 
vielen vielen dank ^.^ kann man auch eventuell eine eingabe von text, während der wartezeit verhindern? also das man nachdem man ne nachricht eingegeben hat nicht noch mal was schreiben kann? :)
 
vielen vielen dank ^.^ kann man auch eventuell eine eingabe von text, während der wartezeit verhindern? also das man nachdem man ne nachricht eingegeben hat nicht noch mal was schreiben kann? :)
Mir ist kein Weg bekannt. Aber du könntest dir mal ncurses anschauen, damit kann man einiges machen. Ich weiß aber nicht, ob es davon auch eine Win. Version gibt.


N43
 
Ist mir doch egal ob es eine Windoof version gibt... :-D *PRO LINUX* ^.^

Vielen dank, werd ich mir mal anschauen.
Aber bei Windows hätte ich das problem nicht, da der nur eingabe erlaubt wenn auch dazu aufgefordert wird.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben