001
24.06.2006, 17:55 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
hi, icq und co laufen über server, z.b login.icq.com:5190 d.h der client baut von einem beliebigen port > 1024 eine verbindung dorthin auf, und alle daten gehen da drüber. ICQ hat auch die möglichkeit mit clients direkt zu verbinden, dann stellt einer der clients einen port auf "warten" und wartet darauf das der andere client dahin verbindet, direkt eben. Ansonsten "machst" du immer einen port "auf" sobald du eine tcp-verbindung aufbaust, nur steht der eben nicht auf "warten" sondern eben auf "verbinden nach xyz". Da die meisten Router die NAT benutzen meist interne verbindungen nach außen direkt weitergeben, musst du dafür auch keine ports "freigeben". (das meinst du denke ich mit "port öffnen")
Spiele machen das genauso, es gibt aber auch einige bei denen man welche "öffnen" muss, da dann Daten/Verbindungen von "außen" "rein" müssen, nicht nur von "innen" "raus".
Bei deinem Chatprogramm heißt das konkret:
Du brauchst ein Serverprogramm, bei dem dann ein port "offen" sein muss, damit clients verbinden können. für deine Clients an sich musst du aber keine ports "öffnen", solang diese mit dem Server verbinden, und nicht der server mit den clients (gibt ja auch keinen sinn) -- class God : public ChuckNorris { }; |