Автор работы: Пользователь скрыл имя, 17 Декабря 2011 в 13:04, курсовая работа
В данном курсовом проекте разработана программа-аналог системы p2p. Данная программа создана в среде Delphi версии 7.0. Программа представляет собой комплекс средств для обмена файлами между пользователями в сети, включающий в себя хаб, клиентское приложение, поиск нужных файлов, предоставление доступа к информации, чат между пользователями. Наряду с этим, в программе реализованы права доступа на действия с файлами пользователей.
Введение 5
1. Анализ технического задания 7
2. Реализация 13
3. Тестирование 13
Заключение 18
Список литературы 19
begin
LogMsg('Не могу соедениться с' + fConnect.edHost.Text + ':' + fConnect.edPort.Text + ' Ошибка- ' + bsErrorDescription(aCode));
if not btnAutoTest.Down then
ShowMessage('Не могу соединиться!'#13#13'Ошибка: ' + bsErrorDescription(aCode));
UpdateStatus;
end;
procedure TfMain.GoPeerConnected(Sender: TObject; aHandle: Integer);
var
Pe: TPeer;
begin
Pe := TPeer.Create;
MyPeers.Add(Pe);
P2pAgent.SetMoniker(aHandle, Integer(Pe));
Pe.Handle := aHandle;
Pe.Username := P2pAgent.GetPeerName(aHandle);
P2pAgent.SetIncomingBandwidth(
P2pAgent.SetOutgoingBandwidth(
Application.CreateForm(TfChat, Pe.fChat);
TfChat(Pe.fChat).Peer := Pe;
Pe.fChat.Caption := 'чат с ' + Pe.Username;
Application.CreateForm(
TfFiles(Pe.fFiles).Peer := Pe;
Pe.fFiles.Caption := Pe.Username + '''расшаренные файлы';
Application.CreateForm(
TfSearch(Pe.fSearch).Peer := Pe;
Pe.fSearch.Caption := 'Поиск в ' + Pe.Username + '''файлах';
Pe.ListItem := lvPeers.Items.Add;
Pe.ListItem.Data := Pointer(Pe);
Pe.ListItem.Caption := CheckName(Pe.Username);
Pe.ListItem.Subitems.Add(
Pe.ListItem.Subitems.Add('
if lvPeers.Items.Count = 1 then
lvPeers.Items[0].Selected := True;
UpdateButtons;
UpdateStatus;
LogMsg('New peer at ' + Pe.ListItem.SubItems[0] + ':' + Pe.ListItem.SubItems[1]);
if not btnAutoTest.Down then Exit;
P2pAgent.SendChatMessage(
end;
procedure TfMain.GoPeerDisconnected(
var
Pr: TPeer;
begin
Pr :=
TPeer(P2pAgent.GetMoniker(
if Pr = nil then Exit;
LogMsg('удалить пользователя ' + Pr.ListItem.Caption);
DeletePeer(Pr);
end;
procedure TfMain.btnFilesClick(Sender: TObject);
begin
ShowForm(TPeer(lvPeers.
end;
procedure TfMain.GoNeedFileList(Sender: TObject; aHandle: Integer; const aPath: WideString; var aOkay: WordBool; var aRoot: WideString);
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoHaveListItem(Sender: TObject; aHandle: Integer; const aName: WideString; aFolder: WordBool; aSizeLo, aSizeHi, aTimeLo, aTimeHi: Integer);
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoListDone(Sender: TObject; aHandle, aCode: Integer);
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedCreateFolder(
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoCreateFolderDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedRenameFolder(
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoRenameFolderDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedRenameFile(
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoRenameFileDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedDeleteFolder(
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoDeleteFolderDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedDeleteFile(
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoDeleteFileDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedDownload(Sender: TObject; aHandle: Integer; const aPath: WideString; var aOkay: WordBool; var aRoot: WideString);
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoDownloadServerDone(
begin
if not SelectPeer(aHandle) then Exit;
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoDownloadClientDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedUpload(Sender: TObject; aHandle: Integer; const aPath: WideString; var aOkay: WordBool; var aRoot: WideString);
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoServerUploadDone(
begin
if not SelectPeer(aHandle) then Exit;
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoUploadClientProgress(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoClientUploadDone(
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedZip(Sender: TObject; aHandle: Integer; const aPath: WideString; var aOkay: WordBool; var aRoot: WideString);
begin
if not SelectPeer(aHandle) then Exit;
aOkay
:= fRights.HasRight(SelPeer.
if not aOkay then Exit;
aRoot
:= fRights.GetRoot(SelPeer.
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoServerZipDone(Sender: TObject; aHandle, aCode: Integer);
begin
if not SelectPeer(aHandle) then Exit;
LogMsg(CheckName(SelPeer.
end;
procedure TfMain.GoClientZipDone(Sender: TObject; aHandle, aCode: Integer);
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoZipProgress(Sender: TObject; aHandle, aFileCount, aFileTotal, aByteCountLo, aByteCountHi, aByteTotalLo, aByteTotalHi: Integer);
begin
if not SelectPeer(aHandle) then Exit;
TfFiles(SelPeer.fFiles).
end;
procedure TfMain.GoNeedUnzip(Sender: TObject; aHandle: Integer; const aPath: WideString; var aOkay: WordBool; var aRoot: WideString);
begin