BNetEx Server(BMX) / Client(VB6) TCP

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

SeroSoft

Betreff: BNetEx Server(BMX) / Client(VB6) TCP

BeitragMi, März 21, 2007 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,
ich möchte gerne eine TCP-Verbindung zwischen einem BMX-Server und einem VB6 Client herstellen. Folgenden Code habe ich aus dem Forum:

Zitat:
SuperStrict

Framework vertex.BNetEx
Import Brl.StandardIO
Import Brl.System
Import Brl.LinkedList


Global Stream : TTCPStream
Global ClientList : TList
Global Client : TTCPStream

Stream = New TTCPStream
stream.init()
Stream.SetLocalPort(5900)
Stream.Listen()

Stream.SetTimeouts(1000,1000,1000)

ClientList = CreateList()

While (True)
Client = Stream.Accept()
If Client Then
Print( "New Client: ")
Print( " - IP: "+TNetwork.StringIP(client.GetLocalIP()))
Print( " - Port: "+Client.GetLocalPort())
ClientList.AddLast(Client)
EndIf

For Client = EachIn ClientList
If Client.Eof() = -1 Then
Print( "Client has disconnected")
Print( " - IP: "+TNetwork.StringIP(Client.GetLocalIP()))
ClientList.Remove(Client)

Continue
EndIf

While Not Client.Eof()
Print ">"+Client.ReadLine()
Wend
Next


Wend

Stream.Close()


Mir wurde von mehreren Seiten schon bestätigt, dass der Code eigentlich richtig sein soll. Eine Verbindung wird aufgebaut. Nur wenn ich dann einen String schicke "hallo test" reagiert der Server auf garnix. Hat von Euch vielleicht eine Idee ?

Hier mal noch der VB-Code:

Zitat:
Option Explicit

Private Sub Command2_Click()
Dim ServerIP As String

' Die IP-Adresse oder Computer-Name des Servers
ServerIP = "127.0.0.1"

Winsock1.Protocol = sckTCPProtocol
Winsock1.RemoteHost = ServerIP
Winsock1.RemotePort = 5900
Winsock1.Connect
End Sub

Private Sub Command3_Click()
Winsock1.Close
End Sub

Private Sub Form_Load()
' Command1 deaktivieren
Command1.Enabled = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
Winsock1.Close
End Sub

' Wenn eine direkte Verbindung aufgebaut ist
Private Sub Winsock1_Connect()
' Jezt können wir mit dem Button die Nachricht senden
Command1.Enabled = True
End Sub

Private Sub Command1_Click()
' Nachricht an Server senden
Winsock1.SendData "hallo test"
End Sub

' Wenn die Verbindung geschlossen wird
Private Sub Winsock1_Close()
' Ohne Verbindung kann man auch keine
' Nachrichten senden: Button Aus
Command1.Enabled = False
End Sub


MfG
Sero
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat
 

Dreamora

BeitragMi, März 21, 2007 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
readline würde ich net wetten das das geht
byte für byte auslesen ist hier die devise.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

SeroSoft

BeitragMi, März 21, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie mach ich das ?
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat

Blitzcoder

Newsposter

BeitragMi, März 21, 2007 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Jeden Buchstaben als Byte mit ASCII Code schicken. Und an der anderen Seite mit Chr() wieder zu Buchstaben umwandeln.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

SeroSoft

BeitragMi, März 21, 2007 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Und dann trotzdem Readline verwenden ?
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat
 

Dreamora

BeitragMi, März 21, 2007 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein

ReadByte und alles manuell auslesen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Vertex

BeitragDo, März 22, 2007 0:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach Continue ~n EndIf solltest du auch mal Pakete empfangen lassen ^^
Code: [AUSKLAPPEN]
If Client.RecvAvail() Then
   While Client.RecvMsg()
   Wend
EndIf


Ansonsten sehe ich hier ein event. Problem:
Code: [AUSKLAPPEN]
Winsock1.SendData "hallo test"


Ich vermute einfach mal hier, das nicht automatisch ein Chr(13), Chr(10) oder
Chr(13) + Chr(10). Wenn nicht, dann hängst du ein Chr(13) + Chr(10) einfach an "hallo test" an.

mfg olli
vertex.dreamfall.at | GitHub
 

SeroSoft

BeitragDo, März 22, 2007 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
HAHA,
mich hauts weg es GEHT !

Zitat:
SuperStrict

Framework vertex.BNetEx
Import Brl.StandardIO
Import Brl.System
Import Brl.LinkedList


Global Stream : TTCPStream
Global ClientList : TList
Global Client : TTCPStream

Stream = New TTCPStream
stream.init()
Stream.SetLocalPort(5900)
Stream.Listen()

Stream.SetTimeouts(1000,1000,1000)

ClientList = CreateList()

While (True)
Client = Stream.Accept()
If Client Then
Print( "New Client: ")
Print( " - IP: "+TNetwork.StringIP(client.GetLocalIP()))
Print( " - Port: "+Client.GetLocalPort())
ClientList.AddLast(Client)
EndIf

For Client = EachIn ClientList
If Client.Eof() = -1 Then
Print( "Client has disconnected")
Print( " - IP: "+TNetwork.StringIP(Client.GetLocalIP()))
ClientList.Remove(Client)
Continue
EndIf

If Client.RecvAvail() Then
While Client.RecvMsg()
Wend
EndIf

While Not Client.Eof()
Print ">"+Client.ReadLine()
Wend
Next


Wend

Stream.Close()


Ohne noch was an meinem VB-Code zu machen es geht !
Danke an alle die mir so hilfreich zur Seite standen.
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat

Hummelpups

BeitragMi, März 28, 2007 8:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, wie wärs mal mit einrücken?

Warum macht das eigentlich keiner? Kein wunder das man sofort die Übersicht verliert.
...
...


IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus
 

SeroSoft

BeitragMi, März 28, 2007 10:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey natürlich rück ich das !
Nach dem Pasten war nur alles in einer Linie.

MfG
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat

FOODy

BeitragMi, März 28, 2007 11:12
Antworten mit Zitat
Benutzer-Profile anzeigen
SeroSoft hat Folgendes geschrieben:
Hey natürlich rück ich das !
Nach dem Pasten war nur alles in einer Linie.

MfG

Das liegt daran das du den Quote BBCode verwendet hast statt Code Wink


Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

SeroSoft

BeitragMi, März 28, 2007 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
OHHHHH,
ja jetzt wo du es sagst Laughing
Ich gelobe Besserung !

MfG
Core2Duo E6600, 8 GB Corsair DDR2 800, Geforce 8800 GTX, Mouse: G5, Keyboard: G15, 2x 400 GB Samsung 16 MB Cache, 16000er T-Com Flat

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group