ErrorMaker
Grünschnabel
Hallo zusammen 
Ich programmiere schon seit einiger Zeit mit Visual Basic 6.0 (auch wenn die Sprache ein wenig überholt ist).
Nun habe ich mir eine ein C++ Client geschrieben und möchte mit meinem VB6 Server kommunizieren.
Für den C++ Client habe ich folgende Socket Klasse verwendet: http://www.adp-gmbh.ch/win/misc/sockets.html
Der C++ Client sieht so aus:
Der VB6 Server sieht so aus:
Geplant ist, dass der C++ Client dem VB6 Server den String "ToVB" schickt und dieser dem VB6 Server "ToDLL" zurückschickt.
Von C++ zu VB6 funktioniert dies auch einwandfrei, ich erhalte die MessageBox mit dem "ToVB" String. Jedoch bleibt mir der C++ Client hängen wenn ich "ToDLL" zurückschicke.
Ich habe ausserdem mit Erfolg (erhielt Antwort vom Google Server ohne hängen zu bleiben) folgendes mit dem C++ Client probiert um zu prüfen ob es an meinem VB6 Server Programm liegt:
Nun frage ich mich, ob es nicht möglich ist, einen einfachen String von VB6 zu C++ über die Socket Klasse zu senden.
Vielen Dank im Voraus für jegliche Hilfe
- ErrorMaker

Ich programmiere schon seit einiger Zeit mit Visual Basic 6.0 (auch wenn die Sprache ein wenig überholt ist).
Nun habe ich mir eine ein C++ Client geschrieben und möchte mit meinem VB6 Server kommunizieren.
Für den C++ Client habe ich folgende Socket Klasse verwendet: http://www.adp-gmbh.ch/win/misc/sockets.html
Der C++ Client sieht so aus:
Code:
try {
SocketClient s(local_ip.c_str(), 12345);
s.SendLine("ToVB");
string l = "";
while (1) {
l = s.ReceiveLine();
log_to_file("%s\n",l.c_str());
if (l.empty()) break;
}
log_to_file("%s\n",l.c_str());
}
catch (const char* s) {
log_to_file("%s\n",s);
}
catch (std::string s) {
log_to_file("%s\n",s.c_str());
}
catch (...) {
log_to_file("%s\n","unhandled exception");
}
Der VB6 Server sieht so aus:
Code:
'Listening
Private Sub Listening_Click()
SckServer.CloseSck
SckServer.LocalPort = 12345
SckServer.Listen
MsgBox "Listening: " & GetSocketState(SckServer.State)
End Sub
Private Sub SckServer_ConnectionRequest(ByVal requestID As Long)
SckServer.CloseSck
MsgBox "SckServer ConnectionRequest"
SckServer.Accept (requestID)
MsgBox "SckServer ConnectionRequest: " & GetSocketState(SckServer.State)
End Sub
Private Sub SckServer_DataArrival(ByVal bytesTotal As Long)
Dim tmp As String
SckServer.GetData tmp
MsgBox tmp
If InStr(tmp, "ToVB") Then
MsgBox "Sending"
SckServer.SendData ("ToDLL")
End If
End Sub
Geplant ist, dass der C++ Client dem VB6 Server den String "ToVB" schickt und dieser dem VB6 Server "ToDLL" zurückschickt.
Von C++ zu VB6 funktioniert dies auch einwandfrei, ich erhalte die MessageBox mit dem "ToVB" String. Jedoch bleibt mir der C++ Client hängen wenn ich "ToDLL" zurückschicke.
Ich habe ausserdem mit Erfolg (erhielt Antwort vom Google Server ohne hängen zu bleiben) folgendes mit dem C++ Client probiert um zu prüfen ob es an meinem VB6 Server Programm liegt:
Code:
try {
SocketClient s("www.google.com", 80);
s.SendLine("GET / HTTP/1.0");
s.SendLine("Host: www.google.com");
s.SendLine("");
string l = "";
while (1) {
l = s.ReceiveLine();
log_to_file("%s\n",l.c_str());
if (l.empty()) break;
}
log_to_file("%s\n",l.c_str());
}
catch (const char* s) {
log_to_file("%s\n",s);
}
catch (std::string s) {
log_to_file("%s\n",s.c_str());
}
catch (...) {
log_to_file("%s\n","unhandled exception");
}
Nun frage ich mich, ob es nicht möglich ist, einen einfachen String von VB6 zu C++ über die Socket Klasse zu senden.
Vielen Dank im Voraus für jegliche Hilfe

- ErrorMaker