Hi, i trying to send a record with TWSocket in delphi (code below). send/receive works well, but when i close the connection to the server. OnDataAvailable is fired and i get a message (from my showmessage) with strange signs. That means i cast the incoming data to my record an get something useless stuff ;>. How can i prevent this?
//******* the client ******** //connecting to server procedure TForm1.Btn_ConnectClick(Sender: TObject); begin WSocket1.Proto:='tcp'; WSocket1.Addr:=Edit_Addr.Text; WSocket1.Port:=Edit_Port.Text; Wsocket1.Connect; end; //sending var msgrec:Tmsgrec; //msgrec is a simple record-struct with 1 string[255] if wsocket1.State=wsConnected then begin msgrec.MsgText:='my text'; Wsocket1.Send(@msgrec,sizeof(msgrec)); end else showmessage('not connected'); //********* the server ******* // starting the server procedure TForm1.Btn_ListenClick(Sender: TObject); begin WSocket1.proto:='tcp'; WSocket1.Addr:='0.0.0.0'; WSocket1.Port:='50000'; wsocket1.Listen; end; //accepting all incomming connections procedure TForm1.WSocket1SessionAvailable(Sender: TObject; Error: Word); begin wsocket1.HSocket:=Wsocket1.Accept; end; //receiving data procedure TForm1.WSocket1DataAvailable(Sender: TObject; Error: Word); var msgrec : Tmsgrec; Src : TSockAddrIn; SrcLen : Integer; RemoteAddr: string[15]; begin if error=0 then begin SrcLen := SizeOf(Src); wsocket1.ReceiveFrom(@MsgRec,SizeOf(MsgRec),Src,SrcLen); if SrcLen>0 then begin RemoteAddr:=inet_ntoa(src.sin_addr); //IP ermitteln if msgrec.msgtext<>'' then showmessage(msgrec.msgtext); end; end; end; i found nothing usefult in google, hope you can help... greets frank -- Weitersagen: GMX DSL-Flatrates mit Tempo-Garantie! Ab 4,99 Euro/Monat: http://www.gmx.net/de/go/dsl -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be