Start Network Programming In Java
شكرا اخى هويدى مرة اخرى
اقتباسملاحظين معايا أنه الأخ وجدي كان اسمه رومانسي
الجافا قضت على المشاعر خلاص :lol:


شكراً لك
فعلاً شرح أفضل من رائع
الموضوع يستحق التثبيت
السلام عليكم
في الواقع ان ردي جاء متأخراً, ولكن أحببت أن أشكر romansy
جزيل الشكر وان يجعله الله في ميزان حسناتك

حياك الله على هذه الدروس الحلوة
ان شاء الله بأقرب فرصة نبلش دراستها
شكرا لك اخي
إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ
رسم المخططات البيانية بواسطة الجافا
كتاب تحليل وتصميم نظم المعلومات
السلام عليكم ياخواني اسأل الله العلي العظيم ان يتقبل منا ومنكم الصيان والقيام وان يعتق رقابنا من النار انا يا اخواني عندي استفسار في برمجة الشبكات انا صممت شبكة كلاينت سيرفر داتابيس سيستم على الاوراكل.
الكلاينت يدخل المعطيات المطلوبة لاتمام الطلب ومن ثم يجهز الاستعلام(Query) في string ثم يرسله للسيرفر .
السيرفر يستقبل الطلب وينفذه ثم يرسل للكلاينت هل تم التنفيذ ام لا (طبعا يكون ناتج تنفيذ الاستعلام يا 0 او 1).
الاستعلام فقط كان عن (insert ,delete ,update).
طبعا واجهة النظام concole.
استفساري كيف اقدر استفسر اكثر من استعلام في اتصال واحد واشكر الاخ Wajdy Essam على مجهوده الرائع اسأل الله ان يجعل ذلك في موازين اعماله وشكرا .
اخواني اقدر مثلا استعمل sleep في السيرفر مثلااجعله ينتظر تقريبا ساعتين .فكرتي كاتالي:
الكلاينت اذا استعلم و استقبل الناتج فانه بامكانه الاستعلام مرة اخرة لاني وضعت قائمة بانواع الاستعلام والاستعلام كله داخل لوب والخروج منه اذا ضغط المستخدم رقم 4.
المشكله تكمن عند السيرفر فهو يستقبل الطلب ويعالجه ويكمل البرنامج الى الاخير وينتهي مع الرغم من اني لم اقفل الاتصال فما الحل يا اخوان ارجوكم ان تسعفوني.
اولا اخى الكريم يجب وضع سوالك فى موضوع مستقل
حسب قواعد المشاركه فى المنتدى
ثانيا
mm1122 كتب:استفساري كيف اقدر استفسر اكثر من استعلام في اتصال واحد
يعنى ايه اكثر من استعلام فى اتصال واحد؟؟
هو انت بتتصل فى كل مره تعمل فيها استعلام ؟ ولا هو اتصال واحد وبترسل وتستقبل عليه
mm1122 كتب:اخواني اقدر مثلا استعمل sleep في السيرفر مثلااجعله ينتظر تقريبا ساعتين .فكرتي كاتالي:
الكلاينت اذا استعلم و استقبل الناتج فانه بامكانه الاستعلام مرة اخرة لاني وضعت قائمة بانواع الاستعلام والاستعلام كله داخل لوب والخروج منه اذا ضغط المستخدم رقم 4.
المشكله تكمن عند السيرفر فهو يستقبل الطلب ويعالجه ويكمل البرنامج الى الاخير وينتهي مع الرغم من اني لم اقفل الاتصال فما الحل يا اخوان ارجوكم ان تسعفوني.
اولا فكره انك تجعل السيرفر خامل لمده ساعتين
بصراحه فكره مستهلكه للسيرفر وكمان السيرفر دا مش بيكون جهاز عادى دا بيكون بمواصفات معينه
وعاليه فبالتالى هذه المواصفات شغاله بدون اى شىء
المهم
المشكله بتاعتك غير واضحه
يرجى التفسير اكثر او وضع الكود وشرح اين تكمن المشكله
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 4 أغسطس 2011 في 14:16
اشكرك ياخي الكريم على سرعة تجاوبك معي وانا اخذت بملاظحتك وفتحت موضوع مستقل اما بنسبة للاستفساي السابق اعتذر بشدة لاني لم اوضح سؤلي جيدا .
وابشرك عرفت الحل لمشكلتي فقط لوب وبعض الشروط والجمل وبعد ذلك لا توجد مشكلة.
هو كان هو اتصال واحد ارسل واستقبل عليه.
موضوع احترافي تشكر عليه
وان شاء الله ببلش بقرائته اليوم
طبعا الحين زي الاطرش ف الزفة
I will be back
السلام عليكم ورحمة الله وبركاته
قمت بعمل UDP Client/Server
انشأت الكود لكل من الكلاينت والسيرفر و GUIdesign
المطلوب : اختبار كفاءة الـ UDP
استخدمت برنامج ال netbeans
كل الأمور طيبة على ما اعتقد ولكنني لا استطيع عمل الاختبار ...وأعتقد انني لم استطع تشغيل البرنامج بصورة صحيحة لقلة خبرتي في هذا المجال...
أرجو منكم مساعدتي في تصحيح الأخطاء وتنفيذ البرنامج بصورة صحيحة..
لا استطيع وضع الكود هنا لأنه سظهر عند المدرس على انه غش عند التصحيح...
أرجو ممن يريد مساعدتي التواصل معي ع الخاص وسوف ارسل له الكودات ...
تحياتي لكم
هذه يا جماعة الأخطاء اللي تطلع معي:
عند عمل run للسيرفر:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - illegal start of expression
at project5.Server.main(Server.java:20)
Java Result: 1
عند عمل run للكلاينت:
Exception in thread "main" java.io.FileNotFoundException: e:\eeeee.txt (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at project5.Client.main(Client.java:32)
Java Result: 1
وشكرا لكم
تم تعديل هذه المشاركة بواسطة the_warrior313 في 19 ديسمبر 2011 في 17:02
السلام عليكم ...
حليت المشكلة بعد عناء طويل ..
وعملت كلاينت وسيرفر وكل الأمور تمام ...
الحين عملت GUI Design واللي خبرتي فيه صفر ...صممته بحيث انه يوجد فيه كلاينت وسيرفر ..
في الكلاينت يوجد التالي:
اختيار الملف المراد ارساله من الجهاز
حجم الباكيت
ايبي السيرفر والبورت
زمن بداية الارسال
الزمن النهائي
وقت النقل
وزر اضغط عليه "أبدأ بالارسال"
بالنسبة للسيرفر:
ايبي السيرفر والبورت نكتبه يدوياً
وزرين : أبدأ بالاستماع واوقف الاستماع ...
المشكلة انه ولا واحد من هالازرار يعمل ...
اقدر اعمل رن للسيرفر والكلاينت يدوياً وأحصل عى هذه المعلومات ولكن من خلال ال GUI لم افلح أبداً ...
ارجو منكم الرد >>>دلوني على طريقة او دروس اتعلم منها كيف اعمل GUI design واحل هالمشكلة ....
شكراً لكم
*استخدمت برنامج netbeans
تم تعديل هذه المشاركة بواسطة the_warrior313 في 22 ديسمبر 2011 في 09:12
the_warrior313 كتب:السلام عليكم ...
حليت المشكلة بعد عناء طويل ..
وعملت كلاينت وسيرفر وكل الأمور تمام ...
الحين عملت GUI Design واللي خبرتي فيه صفر ...صممته بحيث انه يوجد فيه كلاينت وسيرفر ..
في الكلاينت يوجد التالي:
اختيار الملف المراد ارساله من الجهاز
حجم الباكيت
ايبي السيرفر والبورت
زمن بداية الارسال
الزمن النهائي
وقت النقل
وزر اضغط عليه "أبدأ بالارسال"
بالنسبة للسيرفر:
ايبي السيرفر والبورت نكتبه يدوياً
وزرين : أبدأ بالاستماع واوقف الاستماع ...
المشكلة انه ولا واحد من هالازرار يعمل ...
اقدر اعمل رن للسيرفر والكلاينت يدوياً وأحصل عى هذه المعلومات ولكن من خلال ال GUI لم افلح أبداً ...
ارجو منكم الرد >>>دلوني على طريقة او دروس اتعلم منها كيف اعمل GUI design واحل هالمشكلة ....
شكراً لكم
*استخدمت برنامج netbeans
السلام عليكم
ربما هذا الكتاب سيساعد قليل
تم تعديل هذه المشاركة بواسطة sahraoui17 في 22 ديسمبر 2011 في 16:20
sahraoui17 كتب:
يا عيني عليك يا باشا ..
دروس في غاية الروعة والاتقان ...
بسهر عليهم اليوم وإن شاء الله أخلصهم ...لأنه لم يبقى إلا القليل على التسليم ...
السلام علكم
هل يوجد جزاء اخر لهذا الموضوع?
البرنامج الأول ما قاعد يشتغل معاي(برنامج المخاطبة بين الجهازين) و جبتلبت برضو برنامجهم الفي موقع الشركة أيضا و لم يعمل معى هو الاخر
اقصد برنامج ال socktets
يطلع لي هذا الخطأ:
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at KnockKnockClient.main(KnockKnockClient.java:16)
Exception in thread "main" java.lang.NullPointerException
at KnockKnockClient.main(KnockKnockClient.java:32)
هذا هو الكود
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class KnockKnockServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(2222); } catch (IOException e) { System.err.println("Could not listen on port: 4444."); System.exit(1); } Socket clientSocket = null; try { clientSocket = serverSocket.accept(); } catch (IOException e) { System.err.println("Accept failed."); System.exit(1); } PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( clientSocket.getInputStream())); String inputLine, outputLine; KnockKnockProtocol kkp = new KnockKnockProtocol(); outputLine = kkp.processInput(null); out.println(outputLine); while ((inputLine = in.readLine()) != null) { outputLine = kkp.processInput(inputLine); out.println(outputLine); if (outputLine.equals("Bye.")) break; } out.close(); in.close(); clientSocket.close(); serverSocket.close(); } }import java.net.*; import java.io.*; public class KnockKnockProtocol { private static final int WAITING = 0; private static final int SENTKNOCKKNOCK = 1; private static final int SENTCLUE = 2; private static final int ANOTHER = 3; private static final int NUMJOKES = 5; private int state = WAITING; private int currentJoke = 0; private String[] clues = { "Turnip", "Little Old Lady", "Atch", "Who", "Who" }; private String[] answers = { "Turnip the heat, it's cold in here!", "I didn't know you could yodel!", "Bless you!", "Is there an owl in here?", "Is there an echo in here?" }; public String processInput(String theInput) { String theOutput = null; if (state == WAITING) { theOutput = "Knock! Knock!"; state = SENTKNOCKKNOCK; } else if (state == SENTKNOCKKNOCK) { if (theInput.equalsIgnoreCase("Who's there?")) { theOutput = clues[currentJoke]; state = SENTCLUE; } else { theOutput = "You're supposed to say \"Who's there?\"! " + "Try again. Knock! Knock!"; } } else if (state == SENTCLUE) { if (theInput.equalsIgnoreCase(clues[currentJoke] + " who?")) { theOutput = answers[currentJoke] + " Want another? (y/n)"; state = ANOTHER; } else { theOutput = "You're supposed to say \"" + clues[currentJoke] + " who?\"" + "! Try again. Knock! Knock!"; state = SENTKNOCKKNOCK; } } else if (state == ANOTHER) { if (theInput.equalsIgnoreCase("y")) { theOutput = "Knock! Knock!"; if (currentJoke == (NUMJOKES - 1)) currentJoke = 0; else currentJoke++; state = SENTKNOCKKNOCK; } else { theOutput = "Bye."; state = WAITING; } } return theOutput; } }import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class KnockKnockClient { public static void main(String[] args) throws IOException { Socket kkSocket = null; PrintWriter out = null; BufferedReader in = null; try { kkSocket = new Socket("Alnour-PC", 3333); out = new PrintWriter(kkSocket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream())); } catch (UnknownHostException e) { System.err.println("Don't know about host: taranis."); System.exit(1); } catch (IOException e) { e.printStackTrace(); /*System.err.println("Couldn't get I/O for the connection to: taranis."); System.exit(1);*/ } BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String fromServer; String fromUser; while ((fromServer = in.readLine()) != null) { System.out.println("Server: " + fromServer); if (fromServer.equals("Bye.")) break; fromUser = stdIn.readLine(); if (fromUser != null) { System.out.println("Client: " + fromUser); out.println(fromUser); } } out.close(); in.close(); stdIn.close(); kkSocket.close(); } }للمزيد يمكنك زيارة مدونتي
جزااك الله كل خير اخ وجدي ... دروووس في غاية الروعة والفائدة ...
كتييييييييييييير استفدت منهاا ... ان شاءالله اتكون في ميزان حسنااتك ..
شكرا كتييير ويعطيك العافية .....
اذا سمحتوا انا بدي مساعدة في كود الكلينت و السيرفر في tcp بحيث انوا اشغل كود السيرفر و بس اشغل كون الكليت تظهر رسالة اذا بدي يكون خطأ في الرسالة ام لا اذا اخترت انوا يكون في خطأ يحسب السيرفر عن طريق finction ويرسل للكليت انوا في خطا واذا ما في خطأ يبعث السيرفر مسج شكر ا تم استلام الرسالة
Client side:
• Add a function that takes client message and randomly makes a bit error on it. (To simulate a channel with bit error.
• Add a function to calculate and send the checksum.
• Your client should be able to run in two modes, with/without error.
• Client should display the server acknowledgment in both cases.
Server side:
• Server recalculate checksum if it is ok then it sends positive ack to client else it sends a negative one.
