Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

1

17.06.2008, 12:21

close() bei sockets

Hallo

Ich hab mal ne frage...^^

Also einen socket erstellt man ja mit

C-/C++-Quelltext

1
Socket(...,...,..)


und schließen tut man ihn mit close().
Ach ja und connect() is auch noch dabei ;)

so... aber wie macht man ein disconnect ??
macht man erst close() dann wieder socket und dann wieder
connect ? oder gibts da auch ne funktion ?

ich frage mich, weil close() ja eigentlich auch die einstellungen
von socket vernichtet, oder ?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

17.06.2008, 13:11

Vielleicht shutdown()?
@D13_Dreinig

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

3

17.06.2008, 14:54

Erstmal sorry,.. ich meinte "closesocket()" von Winsockets


Danke werde es gleich mal ausprobieren^^

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

4

17.06.2008, 16:01

Hmm also mit shutdown, kann ich nur das senden und emfangen
verhindern. Und muss trotzdem einen neuen socket erstellen,
um wieder eine Verbindung aufbauen zu können...:(


Es gibt irgendwie ein DisconnectEx.. aber das ist anscheinend
nich mit in winsock2.h deklariert...

Gibts da net noch bessere methoden ?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

17.06.2008, 16:33

Seit wann baut ein "Disconnect" denn eine Verbindung auf?
@D13_Dreinig

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

6

17.06.2008, 16:48

Hehe... ich hab mich glaub ich nen bisl unverständlich ausgedrückt.. 8)

Also.. die normale prozedur bei einem clienten sieht ja so aus:

1. socket() -> Erstellt den socket
2. connect()-> Verbindet den socket
3. close() -> Schließt den socket

also das sind jetzt die wichtigsten sachen

Ich möchte jetzt folgendes machen:

1. socket() -> Erstellt den socket
2. connect()-> Verbindet den socket
3. disconnect()-> verbindung wird getrennt
4. connect()-> Verbindet den socket
5. close() -> Schließt den socket

Und ich suche jetzt die funktion "disconnect()",
damit ich den socket mehrmals benutzen kann..

man könnte natürlich auch statt "disconnect()",
close() und dann wieder socket() aufrufen..
Aber gibts da nicht ne andere möglichkeit ?

flux

Treue Seele

  • Private Nachricht senden

7

17.06.2008, 17:06

Ich denke du must einen neuen Socket machen.

"An application should not rely on being able to reuse a socket after it has been shut down. In particular, a Windows Sockets provider is not required to support the use of connect on a socket that has been shut down."

http://msdn.microsoft.com/en-us/library/ms740481(VS.85).aspx

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

8

17.06.2008, 17:42

Hmm.. das hatte ich auch schon gesehen ;)
Aber ich hatte die Hoffnung, dass es trotzdem eine andere Möglichkeit
gibt wieder eine Verbindung herzustellen ^^

Naja wär ja auch irgendwie zu einfach gewesen xD

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

17.06.2008, 17:51

Warum sollte eine TCP Anwendung sich eine Verbindung weiterhin merken, wenn sie (aus welchen Gründen auch immer) beendet wurde? Das wäre vorallem eine interessante Sicherheitslücke. Ich kick deine Verbindung und behaupte beim Server, dass ich deine Verbindung doch bitte wieder aufnehmen möchte . :badgrin:
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Databyte

Alter Hase

  • »Databyte« ist der Autor dieses Themas

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

10

17.06.2008, 18:13

Nein .. er soll sich net die Verbindung merken, sondern nur die Einstellung
die bei socket() angegeben wurden. Er soll sich also disconnecten und dann zu ner anderen
Adresse verbinden !

Werbeanzeige