TCP: Kapier ich nicht
Übersicht

Mashed CrashedBetreff: TCP: Kapier ich nicht |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moinmoin,
der Titel sagt es schon, ich hab sämtliches Material was ich gefunden hab gelesen und versucht es zu kapieren, leider ohne Erfolg. Ok, ich möchte eigentlich was ganz "simples" machen. Zwei PC's per Inet verbinden und dann einfach per einen tastendruck eine Datei übertragen.Mit Directplay hab ich schon Erfahrung, nur da geht das mit Dateien net, UDP kann ich net ausprobeiren da ich 1 Port net 2mal gleichzeitig nutzen kann. Mir erschien es also an sinnvollsten das mit TCP zumachen da es kein Spiel wird sondern ein Programm mit dem man alle möglichen dateien übertragen kann. Hoffer wer kann mir helfen ![]() EDIT: Tutorial oder Erklärung wären gut ![]() |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie sollen wir dir helfen wenn du schon sämtliches Material gelesen
und versucht hast zu verstehen? Warte 5 Jährchen und dann lies es noch mal, bis dahin versuch was anderes als nen Filesharingprogramm zu Coden. IMurDOOM |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was soll man dennn da nicht verstehen?
Ich glaube, da mangelt es nicht an deinen Tutorials, sondern an deinen Kenntnissen des Netzwerks. Zitat: da ich 1 Port net 2mal gleichzeitig nutzen kann
Angenommen, das nehmen wir mal so einfach hin, dann verstehe ich nicht, warum du nicht einfach noch nen anderen Port nimmst. Ich glaube IMurDOOM hat vollkommen recht. Du solltest einfach mal was anderes machen und dir eventuell in deiner Bücherei ein paar Bücher ausleihen. 5 Jahre sind etwas übertrieben, oft reicht ein halbes Jahr. Tipp: TCP/IP für Dummies |
||
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter! |
Yogu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
CodeMaster hat folgendes geschrieben (In "tcp-tut gesucht"):
Zitat: Code: [AUSKLAPPEN] ; SERVER
;-- Netzwerkprotokoll ---------- Const cmd_login = 1 Const cmd_login_passed = 2 Const cmd_login_failed = 3 Const cmd_ping = 4 Const cmd_chat = 5 Const cmd_logout = 6 ;-- Servereinstellungen -------- Global Port% = 4040 Global Name$ = "Testserver" Global Stream% Global PingTime% = 1000 Global CurrentPingTime% Global TimeoutTime% = 10000 ;-- Clienteinstellungen -------- Type TClient Field Stream% Field Name$ Field IP$ Field Port% Field Active% Field Ping% End Type ;-- Server einrichten ---------- Stream = CreateTCPServer(Port) If Not Stream Then Color 255,100,100 : Print "Netzwerkfehler!" : Delay 1000 : End Color 100,255,100 Print "TCP-Server eingerichtet." Print "Warte auf Clients." ;-- Hauptschleife -------------- While Not KeyDown(1) ;-- Server-Runtime ----------- ClientStream = AcceptTCPStream(Stream) If ClientStream Then NewClient.TClient = New TClient NewClient\Stream = ClientStream NewClient\IP$ = DottedIP(TCPStreamIP(ClientStream)) NewClient\Port = TCPStreamPort(ClientStream) NewClient\Ping = MilliSecs() NewClient\Active = False EndIf ;-- EMPFANGEN ---------------- For TmpClient.TClient = Each TClient If MilliSecs() - TmpClient\Ping > TimeoutTime Then ;-- TIMEOUT -------------- Color 255,100,100 Print CurrentTime() + " " + TmpClient\Name + " verlässt den Raum (Timeout)." Delete TmpClient Else If MilliSecs() - CurrentPingTime > PingTime Then WriteByte TmpClient\Stream, cmd_ping CurrentPingTime = MilliSecs() EndIf While ReadAvail(TmpClient\Stream) action = ReadByte(TmpClient\Stream) Select action Case cmd_ping TmpClient\Ping = MilliSecs() Case cmd_login ClientName$ = ReadString(TmpClient\Stream) TmpClient\Name = ClientName TmpClient\Active = True WriteByte TmpClient\Stream, cmd_login_passed WriteString TmpClient\Stream, Name$ Color 100,255,100 Print CurrentTime() + " " + TmpClient\Name + " betritt den Raum." Case cmd_chat Message$ = ReadString(TmpClient\Stream) Color 100,200,255 Print CurrentTime() + " " + TmpClient\Name + ": " + Message$ Case cmd_logout Color 255,100,100 Print CurrentTime() + " " + TmpClient\Name + " verlässt den Raum." Delete TmpClient Exit End Select Wend EndIf Next ;-- SENDEN ------------------- If KeyHit(57) Then Message$ = "Hallo Clients!" Color 255,200,100 Print CurrentTime() + " " + Name$ + ": " + Message$ For TmpClient.TClient = Each TClient WriteByte TmpClient\Stream, cmd_chat WriteString TmpClient\Stream, Message$ Next EndIf Wend ;CloseTCPServer(Stream) End Code: [AUSKLAPPEN] ; CLIENT ;-- Netzwerkprotokoll ---------- Const cmd_login = 1 Const cmd_login_passed = 2 Const cmd_login_failed = 3 Const cmd_ping = 4 Const cmd_chat = 5 Const cmd_logout = 6 ;-- Servereinstellungen -------- Global IP$ = "127.0.0.1" Global port% = 4040 Global ping% Global TimeoutTime% = 10000 Global ServerName$ ;-- Clienteinstellungen -------- Global Name$ = "Testclient" Global Stream% ;-- Verbindung herstellen ------ Stream = OpenTCPStream(IP$,port) If Not Stream Then Color 255,100,100 : Print "Netzwerkfehler!" : Delay 1000 : End Color 100,255,100 Print "Verbindung zum Server hergestellt." Print "Login..." ;-- Beim Server anmelden ------- WriteByte Stream, cmd_login WriteString Stream, Name ping = MilliSecs() status = 0 While Not status If ReadAvail(Stream) action = ReadByte(Stream) Select action Case cmd_ping WriteByte Stream, cmd_ping ping = MilliSecs() Case cmd_login_passed status = 1 ServerName = ReadString(Stream) Case cmd_login_failed status = -1 ;reason$ = ReadString(Stream) ;z.b. zu viele User, IP gesperrt usw. End Select EndIf Delay 100 Wend Color 255,100,100 If status = 0 Then Print "Keine Antwort." : Delay 1000 : CloseTCPStream(Stream) : End If status = -1 Then Print "Keine Authorisierung." : Delay 1000 : CloseTCPStream(Stream) : End Color 100,255,100 Print "Erfolgreich eingeloggt." ping = MilliSecs() ;-- Hauptschleife -------------- While Not KeyDown(1) ;-- Client-Runtime ----------- If MilliSecs() - ping > TimeoutTime Then ;-- TIMEOUT ---------------- Color 255,100,100 Print "Timeout des Servers" CloseTCPStream(Stream) Delay 1000 End Else ;-- EMPFANGEN -------------- While ReadAvail(Stream) action = ReadByte(Stream) Select action Case cmd_ping ping = MilliSecs() WriteByte Stream, cmd_ping Case cmd_chat Message$ = ReadString(Stream) Color 100,200,255 Print CurrentTime() + " " + ServerName + ": " + Message$ End Select Wend ;-- SENDEN ----------------- If KeyHit(57) Then Message$ = "Hallo großer Server!" Color 255,200,100 Print CurrentTime() + " " + Name + ": " + Message$ WriteByte Stream, cmd_chat WriteString Stream, Message$ EndIf EndIf Wend WriteByte Stream, cmd_logout CloseTCPStream(Stream) End Das hilft dir sicher weiter. Mich hat es zum Erfolg gebracht! |
||
Mashed Crashed |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo danke, da haben sich einige Fragen geklärt ![]() (und ein danke an Codemaster ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group