ورود

View Full Version : P2P File Sharing in Java



saeedIRHA
شنبه 17 فروردین 1387, 04:14 صبح
سلام
دوستان یک برنام P2P File Sharing با جاوا نوشتم با استفاده از تکنولوژی JXTA
میخواستم اگر ممکنه دوستان تستش کنن و نظراتشون رو بگن؟؟
متاسفانه چون یکی از پروژهای دانشگاهیم هست تا وقتی نمرهش رو نگیرم
نمیتونم سورسش رو هم در اختیارتون بزارم.
اطلاعات تکمیلی هم در مورد JXTA میتونید اینجا پیدا کنید :
http://en.wikipedia.org/wiki/JXTA
http://www.jxta.org
طریقه استفادهش هم خیلی ساده هست اگر سوالی بود بپرسید
فایل:
http://jxta-filesharing-application.googlecode.com/files/SaEeD-P2P.rar

اگر براتون ممکن هست برنامه رو مدت زمان زیادی باز بزارین که User های جدید بتون
پیداتون کنن.

با تشکر فراوان!!

saeedIRHA
شنبه 24 فروردین 1387, 07:38 صبح
با سلام
از دوستان کسی این برنامه رو تست نکرده ؟؟
ممنون میشم اگر یک وقت کوچیک بزارین و تست کنین و نتیجش رو به من
بگین, چون مشقول نوشتن گزارش براش هستم و می خوام نتیجش رو یک جمع بندی کنم
ممنون میشم اگر دوستان کمک کنن

alinoori
دوشنبه 26 فروردین 1387, 18:05 عصر
من قبلا با JXTA کار کردم.فقط برای چه درسی قرار است ارایه دهید؟

saeedIRHA
دوشنبه 26 فروردین 1387, 20:15 عصر
پروژ آخر سالم هست برای امسال
تست کردین این برنامه رو ؟؟؟

alinoori
دوشنبه 26 فروردین 1387, 23:27 عصر
من دانلود کردم ولی موقع اجرا چند error می دهد من classpath را نیز ست کردم ولی باز error میدهد ، شما ایا تمامی library ها را Add کردید به برنامه؟؟

saeedIRHA
سه شنبه 27 فروردین 1387, 00:26 صبح
بله تمام Library های موره نیاز در پوشه ی lib هستند
توجه داشته باشید که فایل JAR مجود با


java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

کامپایل شده است
برای اجرای برنامه :


C:\Documents and Settings\SaEeD\Desktop\P2P>java -jar SaEeD-P2P_File_Sharing.jar

saeedIRHA
سه شنبه 27 فروردین 1387, 00:36 صبح
من دانلود کردم ولی موقع اجرا چند error می دهد من classpath را نیز ست کردم ولی باز error میدهد ، شما ایا تمامی library ها را Add کردید به برنامه؟؟

دوست من لطف میکنید های Error برنامه رو اینجا بزارین که من ببینم مشکل از کجاست؟؟

alinoori
سه شنبه 27 فروردین 1387, 01:20 صبح
منظور شما اینست که با java 5 نمی توانم اجرایش کنم؟آیا شما با JAVA نسخه 5 برنامه را تست کردی؟

alinoori
سه شنبه 27 فروردین 1387, 01:25 صبح
اینم اون error که درباره برنامه شما گفتم.


Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version n
umber in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :620)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:260)
at java.net.URLClassLoader.access$100(URLClassLoader. java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)

saeedIRHA
سه شنبه 27 فروردین 1387, 02:00 صبح
عرض کردم خدمتتون که من این برنامه رو با جاوا ورژن 6 کامپایل کردم
و از Error هم مشخص هست که JRE شما قدیمی هست اما من سعی میکنم یک نسخش
رو هم با جاوا 5 کامپایل کنم

با تشکر مجدد

alinoori
چهارشنبه 28 فروردین 1387, 18:59 عصر
می توانم بپرسم شما در کدام دانشگاه هستید؟

saeedIRHA
یک شنبه 29 اردیبهشت 1387, 13:40 عصر
سورس کد برنامه به اضافه Class View UML Diagram
توصيه ميکنم قبل از ديدن سورس يک نيگاهی به UML Diagram بندازيد که راحتتر سردر بياريد
ممنون ميشم اگر نظر هاتون رو هم لطف کنيد

mojtaba_java
یک شنبه 29 اردیبهشت 1387, 17:58 عصر
سلام
جالبه
دوستان من این برنامه را با vb نوشته اند

saeedIRHA
دوشنبه 30 اردیبهشت 1387, 12:18 عصر
در حال حاضر Jxta Platform فقط برايه C و Java هستش مگر اینکه شما کل Platform رو از اول نوشته باشين
که کار اسونی نيستش, www.jxta.org
به هر حال این سورس برنامه هست اگر دوستان خواستن استفاده کنن
Platform JXTA هم با جاوا و C نوشته شده نه VB
يک سری به اینجا بزن که اطلاعات بيشتری بدست بياری قبل از اظهار نظر:
www.jxta.org

mazdadoost
دوشنبه 30 اردیبهشت 1387, 13:48 عصر
در حال حاضر Jxta Platform فقط برايه C و Java هستش مگر اینکه شما کل Platform رو از اول نوشته باشين
که کار اسونی نيستش, www.jxta.org
به هر حال این سورس برنامه هست اگر دوستان خواستن استفاده کنن
Platform JXTA هم با جاوا و C نوشته شده نه VB
يک سری به اینجا بزن که اطلاعات بيشتری بدست بياری قبل از اظهار نظر:
www.jxta.org

دوست عزیز :جهت روشن شدن موضوع :
jxta یک پلت فرم نیست.بلکه یه پرتکل هست.پرتکلی که سان برای پیاده سازی P2P وضع کرده.این پرتکل کاملا مستقل از زبان و سیستم هست.به عبارتی در هر زبانی که بشه به شبکه به صورت کامل و Low level دسترسی داشت مثل c-cpp -java-pascal -perl -tcl asm و حتی VB 6 و دات نت قابل پیاده سازیه.این به این پرتکل کمک می کنه تا براحتی در هر پلت فرمی اعم از سخت افزار و نرم افزار براحتی قابل پشتیبانی باشه.اصولا برای همه پرتکل ها چه اونهایی که تحت استانداد هستن چه اونهایی که خودتون میسازید تنها اصل ثابت اینه که عناصر سیستم برای مثال ما شبکه با چه زبانی با هم صحبت کنن!نه این که چطوری.چند مثال : TCP/IP ,FTP,HTTPو البته یک مثال بسیار خوب در این رابطه BitTorrent! این پرتکل هم با زبان های مختلفی هم در پلت قرم های مختلفی پیاده سازی شده!
پس :
1-jxta یک پلت فرم نیست.
2- یه پرتکل هست.
3-مثل هر پرتکلی قابل پیاده سازیه.در اکثر برنامه هایی با کاربرد عمومی:c-cpp-tcl-وحتی با vb و بهرگیری از سوکت های ویندوز!
4-هر چند من هم تا حالا Implemention ی از jxta به این زبان ندیدم.
خالی از فایده نیست شما هم با دقت بیشتری مخصوصا به عنوان کسی که به شکلی فعالیتی در زمینه P2P با jxta و جاوا داشتبن در زمینه اصول ابتدایی پرتکل ها و مفاهیم اولیوشون داشته باشین و البته درک دقیق تری از واژه ها برای بیان مفاهیم برسید.
امید وارم مفید بوده باشه.

saeedIRHA
دوشنبه 30 اردیبهشت 1387, 15:37 عصر
دوست عزیز :جهت روشن شدن موضوع :
jxta یک پلت فرم نیست.بلکه یه پرتکل هست.پرتکلی که سان برای پیاده سازی P2P وضع کرده.این پرتکل کاملا مستقل از زبان و سیستم هست.به عبارتی در هر زبانی که بشه به شبکه به صورت کامل و Low level دسترسی داشت مثل c-cpp -java-pascal -perl -tcl asm و حتی VB 6 و دات نت قابل پیاده سازیه.این به این پرتکل کمک می کنه تا براحتی در هر پلت فرمی اعم از سخت افزار و نرم افزار براحتی قابل پشتیبانی باشه.اصولا برای همه پرتکل ها چه اونهایی که تحت استانداد هستن چه اونهایی که خودتون میسازید تنها اصل ثابت اینه که عناصر سیستم برای مثال ما شبکه با چه زبانی با هم صحبت کنن!نه این که چطوری.چند مثال : TCP/IP ,FTP,HTTPو البته یک مثال بسیار خوب در این رابطه BitTorrent! این پرتکل هم با زبان های مختلفی هم در پلت قرم های مختلفی پیاده سازی شده!
پس :
1-jxta یک پلت فرم نیست.
2- یه پرتکل هست.
3-مثل هر پرتکلی قابل پیاده سازیه.در اکثر برنامه هایی با کاربرد عمومی:c-cpp-tcl-وحتی با vb و بهرگیری از سوکت های ویندوز!
4-هر چند من هم تا حالا Implemention ی از jxta به این زبان ندیدم.
خالی از فایده نیست شما هم با دقت بیشتری مخصوصا به عنوان کسی که به شکلی فعالیتی در زمینه P2P با jxta و جاوا داشتبن در زمینه اصول ابتدایی پرتکل ها و مفاهیم اولیوشون داشته باشین و البته درک دقیق تری از واژه ها برای بیان مفاهیم برسید.
امید وارم مفید بوده باشه.

حرف شما درسته در رابطه با Platform خوندن JXTA توسط من!
اشتباه از من بود و بايد ان رو JXTA Framework صدا ميزدم بجای Platform
ان ههم بخاطر این هست که خود JXTA شامل پرتکل های مختلفی هست که باعث اشتباه من شد!
و البته خيلی جاها هم به عنوان يک Platform شناخته ميشه
برای اثبات حرفم به کتاب Mastering JXTA ,Chapter 2,Page 15 مراجعه کنيد

ساختار JXTA بر اساس XML هست و بايد بشه در زبانهای ديگه پياده سازيش کرد.
ولی اگر دقت ميکرديد من اشاره کردم که با چه زبانی نوشته شده نه اینکه
با چه زبانی ميشه پياده سازيش کرد,
در ضمن به این نوشته هم يک نيگاهی بندازيد:


As JXTA is based upon a set of open XML protocols, it can be implemented in any modern computer language.
Implementations are currently available for Java Platform, Standard Edition, C/C++/C# and
J2ME. The C# Version uses the C++/C native bindings and is not a complete re-implementation in its own right.

http://en.wikipedia.org/wiki/Jxta

کاملاً مشخص هست که در چه زبانهای در حال حاضر ميشه JXTA رو implement کرد
با تشکر

mazdadoost
دوشنبه 30 اردیبهشت 1387, 17:09 عصر
دوست عزیز :
در مورد اینکه jxta مجموعه ای از پرتکل هاست (6 تا) در مقام بیان یه پروتکل خواهد ماند.TCP/IP هم حد اقل 2 پرتکل !تفاوت میان پلت فرم و پرتکل هست!
پلت فرم مجموعه امکانات نرم افزاری و سخت افزاری هست که(شامل معماری سخت افزاری و نرم افزاری که میتونه به نوعی معرف Framework هم باشه.یعنی Framework های نرم افزاری خودشون زیر مجموعه ای از Software Platform )به نرم افزار ها و برنامه ها امکان اجرا شدن میدن.این یعنی Flex از Adobe در عین این که یه پلت فرم یه فریم ورک هم میتونه باشه!که هست!همینطور در مورد لینوکس میشه گفت : پلت فرمی برای اجرای نرم افزار هاست!یا ویندوز یا جاوا یا دات نت!
در کتابی که فرمودین ذقیقا این ترکیب استفاده شده : platform specification.نه platform .دقت نویسنده و ایجاز کلامش حقیقتا زیباست!این ترکیب با توجه به تعریفی که از پلت فرم دادم این معنا رو افاده میکنه : مجموعه مشخصاتی که نحوه پیاده سازی یک پلت فرم رو نشون میده!این مجموعه مشخصات همون مجموعه 6 پرتکل میشه.به عبارتی هر platform specification ی تا قبل از پیاده سازی specification هست. وبعد از پیاده سازیش تبدیل به پلت فرم میشه!امثال بارزش خود جاواست!هم javaSE و هم ME و هم EE هر سه platform specification هستن وقتی توسط خود سان IBM اراکل Nokia و ... پیاده میشن تبدیل به پلت فرم میشن. یعنی : میتونن برنامه های مارو که بر اساس specification نوشته شدن اجرا کنن.همینطور خواهد بود وقتی ما از پلت فرمی مثل Flash استفاده میکنیم!اصولا همین امر برای ما پلت فرم ها رو ارزش مند میکنه.چیزهایی که برنامه های ما رو اجرا میکنن. یک platform specification تا وقتی تبدیل به platform نشه ارزشی نداره.
در مورد اینکه این پرتکل تا الان به چه زبان هایی پیاده سازی شده هموطور که گفتم نمی دونستم.و عرض نکردم که شما فرمودین با vb نمیشه پیادش کرد.عرض بنده این بود به عنوان یه پرتکل میشه با vb پیاده سازیش کرد.
با تشکر.

saeedIRHA
دوشنبه 30 اردیبهشت 1387, 22:05 عصر
بله صحبت های شما کاملاً درست هست
سعی ميکنم در آينده از لفظ درست استفاده کنم
با تشکر

pegetive_2010
پنج شنبه 15 دی 1390, 19:27 عصر
شما نمیدونید چطور میشه بدون JXTA و با استفاده از socket programming در جاوا یک app ساده p2p نوشت که file transfer کنه ؟
مشکل اینه که باید کد سرور و کلاینت یکی باشه و من بلد نیستم.