Ende;
Ende;
cs.OnRead(Sender: TObject;Socket: TCustomWinSocket);
var
sTemp:string;
bufSend:pointer;
beginnen
sRecv:=Socket.ReceiveText;
Fall sRecv[1] von
MP_REFUSE:ShowMessage('Ohnmacht, sei abgewiesen!');
MP_ACCEPT:beginnen
fsSend:=TFileStream.Create(OpenDialog1.FileName,fmOpen);
//iBYTEPERSEND ist eine Konstante, die Größe des jedes Mal gesendeten Pakets.
Socket.SendText(MP_FILEPROPERTY+Trunc(fsSend.Size/iBYTEPERSEND)+1);
Ende;
MP_NEXTWILLBEDATA:beginnen
Socket.SendText(MP_NEXTWILLBEDATA);
Ende;
MP_DATA:beginnen
versuchen
GetMem(bufSend,iBYTEPERSEND+1);
if (fsSend.Position+1+iBYTEPERSEND) < fsSend.Size then
beginnen
fsSend.Read(bufSend^,iBYTEPERSEND);
Socket.SendBuf(bufSend^,iBYTEPERSEND);
fsSend.Free;
Ende // Normales Senden, die Größe beträgt iBYTEPERSEND
sonst beginnen
fsSend.Read(bufSend^,fsSend.Size-fsSend.Position-1);
Socket.SendBuf(bufSend^,fsSend.Size-fsSend.Position-1);
end;//Beim letzten Senden werden die restlichen Daten gesendet
Endlich
FreeMem(bufSend,iBYTEPERSEND+1);
Ende;{des Versuchs}
Ende;
MP_ABORT:beginnen
//Abgesagt :(
fsSend.Free;
Ende;
Ende;{des Falls}
Ende;
Organisationsablauf:
Fügen Sie eine Fehlerbeurteilung hinzu, optimieren Sie das Programm, kombinieren Sie Server und Client, fügen Sie die Anzeige des verbleibenden Zeitfortschritts hinzu, ermöglichen Sie die gleichzeitige Übertragung mehrerer Dateien und fügen Sie eine Chat-Funktion hinzu, um eine gute Punkt-zu-Punkt-Dateiübertragung zu erzielen Programm.