Hallo zusammen,
habe ein Programm geschrieben, welches übers Netzwerk letztendlich nur Stirngs austauscht. Klappt im Netzwerk auch wunderbar, doch wenn ich das ganze versuche über Hamachi (um es übers Internet zu benutzen) ans laufen zu kriegen gibt es Probleme. Client und Server finden und verbinden sich wunderbar miteinander, doch sobald irgendwie eine Nachricht gesendet wird (die im übrigen meistens ein Befehl ist, der intern verarbeitet wird), gibt es eine Zugriffsverletzung der Adresse 00000000 usw. Die Befehle haben in der Regel vier Zeichen als Befehlskennung, die dann vom Client/Server erkannt und weiterverarbeitet weden, sprich, z.B. dass eine Zahlenfolge in ein Array geschrieben wird.
Versteht ihr zufällig woran das liegen könnte? Meine Vermutung ist, dass die Befehle evtl nicht komplett übertragen werden. Vielleicht fällt euch ja etwas dazu ein.
Vielen Dank im Voraus
PS: Hier ein Beispiel wie das bei mir aussieht:
Delphi-Quellcode:
procedure TFrmServer.ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket);
var Nachricht: TChatNachricht;
I: Integer;
l,j,k: integer;
dummy: string;
randomnumber: integer;
blub: string;
testzeug: string;
packetsize: integer;
begin
{Nachricht empfangen}
Socket.ReceiveBuf (Nachricht, SizeOf(Nachricht));
edit1.text:=nachricht.text;
mess:= edit1.Text;
if mess[1]+mess[2]+mess[3]+mess[4]+mess[5]+mess[6]+mess[7]='#$§#GCX' then begin
mess[1]:=' ';
mess[2]:=' ';
mess[3]:=' ';
mess[4]:=' ';
mess[5]:=' ';
mess[6]:=' ';
mess[7]:=' ';
mess:=trim(mess);
zahl:=StrToInt(mess);
end;