Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2009, 19:58   #11
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Таким же образом. Потому что сокеты работают не только в интернет. Надо знать только IP адресата.
MaTBeu вне форума Ответить с цитированием
Старый 13.07.2009, 20:01   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и по-идее файл можно передать через сеть, а как? 2 приложения (нижевыложенные) идут через ип...
Вы не поверите, но локальные сети (по крайней мере современные) построены как раз на использовании IP (напишите в вашей ЛВС в командном окошке ping ИмяКомпьютераВашегоДругана
и увидите его IP адрес...

добавлено
MaTBeu, простите, не увидел Ваш пост... иначе бы не писал...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.07.2009, 14:42   #13
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

2Serge_Bliznykov спасибо, за то что указали как получить ип (локальный)...

а как такой получить (не залазя в браузер поиск "Узнать свой ip"), где то же так пишеться...

Последний раз редактировалось Stilet; 14.07.2009 в 15:17.
Lemo вне форума Ответить с цитированием
Старый 15.07.2009, 10:50   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а как такой получить (не залазя в браузер поиск "Узнать свой ip")
наберите в коммандной строке:
Код:
ipconfig
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.07.2009, 19:28   #15
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

На мой взгляд => тема весьма удалася=))
Вылаживаю исходники и екзешки (неплохая тема для поиска юзерам):
Клиент:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, sEdit, sSkinManager, sLabel, sButton, Menus,
  CoolTrayIcon, sGauge;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    sLabelFX1: TsLabelFX;
    sSkinManager1: TsSkinManager;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sButton2: TsButton;
    CoolTrayIcon1: TCoolTrayIcon;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    sGauge1: TsGauge;
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure sButton1Click(Sender: TObject);
    procedure sButton2Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
  private
    { Private declarations }
    fs: TFileStream;
    Reciving:Boolean;
    DataSize: integer;
      public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


Procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
Begin
Socket.SendText('s');
End;
Procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
Var
s, sl: String;
Begin
s:= Socket.ReceiveText;
If Pos('Ras',S)>0 Then
Begin
fs:=TFileStream.Create(StringReplace(S,'Ras','',[RfReplaceAll]),fmCreate);
end;
if Reciving then
Begin
fs.Write(s[1],length(s));
sGauge1.Progress:=fs.Size;
if fs.Size=DataSize then
Begin
fs.Free;
Reciving:=False;
Application.MessageBox('Поздравляю, Фаил принят', 'Внимание!!!');
End;
Exit;
End;
if copy(s, 1, 5)='Size:' then
Begin
sl:=copy(s, 6, Pos(#0, s)-6);
DataSize:=StrToInt(sl);
Delete(s, 1, Pos(#0, s));
Reciving:=True;
fs.Write(s[1], length(s));
sGauge1.MaxValue:=DataSize;
End;
End;
procedure TForm1.sButton1Click(Sender: TObject);
begin
ClientSocket1.Address:=sEdit1.Text;
ClientSocket1.Active:=True;
end;

procedure TForm1.sButton2Click(Sender: TObject);
begin
ClientSocket1.Active:=False;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
form1.show;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
Application.Terminate;
end;

End.

Сервер:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls, sSkinManager, sButton, Menus, CoolTrayIcon,
  sLabel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    ServerSocket1: TServerSocket;
    OpenDialog1: TOpenDialog;
    sSkinManager1: TsSkinManager;
    sButton1: TsButton;
    CoolTrayIcon1: TCoolTrayIcon;
    PopupMenu1: TPopupMenu;
    Hfpdt1: TMenuItem;
    N1: TMenuItem;
    sLabelFX1: TsLabelFX;

    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure sButton1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Hfpdt1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
Var
fs: TFileStream;
Data: TMemoryStream;
Begin
If Socket.ReceiveText = 's' then
Begin
Fs:=TFileStream.Create(Edit1.Text, FmOpenRead);
Try
Fs.Position:=0;
Socket.SendText('Ras'+ExtractFileName(Edit1.Text));
Sleep(100);
Socket.SendText('Size:'+IntToStr(fs.Size)+ #0);
Socket.SendStream(Fs);
Finally
End;
End;
End;
procedure TForm1.sButton1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
Edit1.Text:=OpenDialog1.FileName;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
application.Terminate;
end;

procedure TForm1.Hfpdt1Click(Sender: TObject);
begin
Form1.show;
end;

End.
Весь проект(все исходники) можно скачать тут
Хочю сказать большое спасибо всем учасникам за их толковые обсуждения и разъяснения...
ЗЫ: в дальнейшем буду в теме чата =)
Вложения
Тип файла: rar 2 exe.rar (881.2 Кб, 38 просмотров)
Lemo вне форума Ответить с цитированием
Старый 19.05.2010, 17:23   #16
хомякec
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 13
По умолчанию

чеел а можешь еще раз залить пример , чтоб были не только ЕХЕшники))))
хомякec вне форума Ответить с цитированием
Старый 19.05.2010, 17:39   #17
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Цитата:
чеел а можешь еще раз залить пример , чтоб были не только ЕХЕшники))))
а самому собрать из кода указанного выше вера не позволяет?
тем более что в 2 exe.rar induc
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!

Последний раз редактировалось DoDge_VipeR; 19.05.2010 в 17:48.
DoDge_VipeR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача файлов в ДОС MawuHkuH Работа с сетью в Delphi 0 17.04.2009 19:43
Передача файлов Malder Общие вопросы .NET 2 03.11.2008 08:04
Передача файлов DM_bite Свободное общение 1 15.09.2008 16:22
Передача файлов на север.. k51102 Работа с сетью в Delphi 1 09.04.2008 16:20
Передача файлов wolff Работа с сетью в Delphi 3 03.03.2007 15:54