View Full Version : سوال: مشکل با indy ftp
soft-c
چهارشنبه 14 خرداد 1393, 11:45 صبح
سلام
من دو تا کامپیوتر را به هم شبکه کردم
یکی از سیستم ها را ip:192.168.1.12 و دیگری ip:192.168.1.10 دادم
روی سیستم 192.168.1.12 ، computer name را server گذاشتم .
حالا با استفاده از دستورات زیر می خواهم که از روی 192.168.1.10 به دیگری وصل بشم :
IdFTP1.Host:='server';
IdFTP1.Username:='Ali';
IdFTP1.Password:='***';
IdFTP1.Port:=63;
IdFTP1.Connect;
ولی وقتی برنامه را اجرا می کنم پیغام
socket error #10061
connection refused
می دهد .
البته شماره پورتهای مختلف را تست کردم و با استفاده از برنامه port scanner شماره پورتهای باز را هم پیدا کردم ولی جواب نداد .
هدفم از این کار این است که مثلا یک فایل را از سیستم 192.168.1.10 به سیستم دیگر منتقل کنم
تشکر
Mask
چهارشنبه 14 خرداد 1393, 20:44 عصر
حاجی این کدها رو از کجا اوردی؟
اصلا رو سرورت Ftp Server نصب کردی؟
soft-c
چهارشنبه 14 خرداد 1393, 23:43 عصر
حاجی این کدها رو از کجا اوردی؟
اصلا رو سرورت Ftp Server نصب کردی؟
والا به نکته خوبی اشاره کردید!!!!:گیج:
من با توجه به اینکه دوستان برای برنامه اتوماسیون پیشنهاد استفاده از روش ftp را دادند به این تکنولوژی روی آوردم .
http://barnamenevis.org/showthread.php?426101-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%D8%AA%D9%88%D9%85%D8%A7%D8%B3%DB%8C%D9%88%D 9%86&p=2011749#post2011749
خوب این اولین بار است که از این کدها استفاده می کنم و با توجه به کدهایی که طوی سایت دیدم و برای تست ، این کدها را نوشتم .
حالا اگر میشه راهنمایی کنید .
خوب چه نیازی به نصب ftp server هست ؟
من مثلا می خوام یک فایل را از کلاینت به سرور منتقل کنم . کدی که در اینترنت دیدم همین طور بود و بعد از دستور get استفاده می کرد .
اینطور که شما می گید پس باید یه برنامه سمت سرور به صورت دائمی run باشه که مثلا کلاینتها بتونن با اون ارتباط بر قرار کنند ؟
لطفا راهنمایی کنید.
تشکر
Mask
پنج شنبه 15 خرداد 1393, 00:17 صبح
دقیقا.
چه شما خودتون اقدام به ارسال و دریافت فایل بکنید و چه از FTP استفاده بکنید، باید از دو نسخه کلاینت و سرور استفاده کنید.
برای راحتی کار میتونید سمت سرور رو برنامه FileZilla Server رو نصب کنید، تنظیمش کنید(کاربر تعریف کنید ، پرمیشن بدید و ...) و از سمت کلاینت اقدام به ارسال فایل کنید.
برای این موضوع هم تا دلت بخاد کد موجوده.
این تابع رو من برای این امور نوشتم:
Function UploadFileFtp(HostFtp,UsernameFtp,PasswordFtp,Path FileLocal, PathFileRemote:string;ShowError:Boolean):Boolean;
var Ftp:TIdFTP;
begin
try
Ftp:=TIdFTP.Create(nil);
try
with Ftp do
begin
ProxySettings.ProxyType := fpcmNone;
ProxySettings.Port := 0;
Host := HostFtp;
Username := UsernameFtp;
password :=PasswordFtp;
Connect;
try
Put(PathFileLocal,PathFileRemote);
Result:=True;
finally
Quit;
Disconnect
end;
end;
finally
Ftp.Free;
end;
except
on E : Exception do
begin
Result:=False;
if ShowError then
ShowMessage(E.ClassName+'-'+E.Message);
end;
end;
end;
soft-c
پنج شنبه 15 خرداد 1393, 00:26 صبح
خوب یک سوال
در یک کد من دیدم که دز همون سمت کلاینت یک فایل را جابه جا می کرد .
این عملیات چگونه انجام میشه ؟
یعنی اگر من یک سرور و مثلا 50 تا کلاینت داشته باشم و کلاینتها بخواهند فایلی را سمت سرور بفرستند باید این برنامه
FileZilla Server سمت سرور نصب بشه و برای هر کاربر یوزر تعریف کنم ؟
مشکل سرعت و ... به وجود نمی یاد ؟
Mask
پنج شنبه 15 خرداد 1393, 00:56 صبح
بله باید نصب بشه.
موضوع سرعت بر میگرده به پهنای باند شما.
در شبکه لوکال، به خصوص کابلی ، پهنای باد 100 مگ به این راحتی ها پر نمیشه و مشکل سرعت پیش نمیاد.
soft-c
پنج شنبه 15 خرداد 1393, 00:59 صبح
حالا من این کار را کردم .
ولی مثلا از دستور get که استفاده می کنم خطا می ده .در دستور get پارامتر اول مسیر فایلی که قرار است جابه جا بشه را نوشتم و پارامتر دوم مسیر فولدری که قرار فایل توی اون بشینه .
ولی خوب connect میشه .
Mask
پنج شنبه 15 خرداد 1393, 02:17 صبح
لا اقل یه زحمتی به خودتون بدید و کدی که من قرار دادم رو مطالعه کنید.
عجیبه برام ، شما یا گاهی از دوستان با این دقت نظر چطوری کد میزنید.
دوست عزیز: وقتی میخواهید فایلی رو بر روی سرور FTP بریزید(upload) باید Put کنید . دستور Get برای زمانی هست که میخواهید از FTP Server فایلی رو دانلود کنید.
soft-c
جمعه 16 خرداد 1393, 14:55 عصر
لا اقل یه زحمتی به خودتون بدید و کدی که من قرار دادم رو مطالعه کنید.
عجیبه برام ، شما یا گاهی از دوستان با این دقت نظر چطوری کد میزنید.
دوست عزیز: وقتی میخواهید فایلی رو بر روی سرور FTP بریزید(upload) باید Put کنید . دستور Get برای زمانی هست که میخواهید از FTP Server فایلی رو دانلود کنید.
تشکر از راهنماییتون . کدها تون را خوندم . ولی چون از قبل داشتم روی get کار می کردم و توی همون کد به مشکل برخوردم داشتم روی اون کار می کردم . و الا کدهای شما خیلی به من کمک کرد .
تشکر
soft-c
یک شنبه 12 مرداد 1393, 17:27 عصر
من فایل را می خوام از طریق کد زیر آپلود کنم :
var idftp:TIdFTP;
try
idftp:=TIdFTP.Create(nil);
try
with idftp do
begin
ProxySettings.ProxyType:=fpcmNone;
ProxySettings.Port:=0;
Host:='192.168.1.9';
Username:='ahmad';
Password:='1364';
Port:=19;
Connect;
try
//TransferType:=ftBinary;
ChangeDir('\\192.168.1.9\word');
Put('D:\Rahpooyan_Aouto\office\nameh\1.doc','\\192 .168.1.9\word');
finally
Quit;
Disconnect;
end;
end;
finally
FreeAndNil(idftp);
end;
except
ShowMessage('err');
end;
ولی روی تابع changedir خطای cwd و روی تابع put هم خطای stor می دهد
مسیری که روی شبکه است share شده است .
soft-c
پنج شنبه 16 مرداد 1393, 17:18 عصر
تشکر از راهنماییهاتون
من یکسری تغییر روی کد ها دادم ، الان دیگه اون پیغام را نمیده منتها پیغام میده :
filename invalid
این خطا مربوط به چی میشه ؟
soft-c
یک شنبه 19 مرداد 1393, 11:03 صبح
دوستان خودم مشکل را پیدا کردم .
گول توضیحات تابع را نخورید که نوشته نمیدونم source , destination . برنامه نویس فکر میکنه منظورش اینه که مسیر سمت مبدا و مسیر سمت مقصد را باید وارد کنید . در صورتیکه در سمت مقصد هم باید فقط اسم فایلی که قرار است از مبدا ارسال شود را بدون مسیر بنویسید .
یعنی این :
Put('D:\Rahpooyan_Aouto\office\nameh\1.doc','\\192 .168.1.9\word');
باید تبدیل بشه به این :
Put('D:\Rahpooyan_Aouto\office\nameh\1.doc','1.doc ');
BORHAN TEC
یک شنبه 19 مرداد 1393, 12:44 عصر
با سلام،
به مثالی که ضمیمه کرده ام خوب دقت کن. با بررسی این مثال تقریباً همه مشکلاتت در رابطه با کامپوننتهای TIdFTP و TIdFTPServerحل و فصل میشه.
موفق باشید...
soft-c
جمعه 28 شهریور 1393, 18:11 عصر
با سلام،
به مثالی که ضمیمه کرده ام خوب دقت کن. با بررسی این مثال تقریباً همه مشکلاتت در رابطه با کامپوننتهای TIdFTP و TIdFTPServerحل و فصل میشه.
موفق باشید...
شما در این برنامه برای overwrite کردن فایل ، ابتدا فایل را پاک می کنید و سپس فایل را مجددا آپلود می کنید؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.