باسم الله والحمد لله والصلاة والسلام على رسول الله
زي ما قعدتكم إن شاء الله اليوم هنشتغل الـ code
العاملي تبع الـ Java Networking مثل ما اشتغلنا مع
الـ database أو غيرها إن شاء الله بتكون بتحصل
الفايدة الموجودة وإذا كان في أي labs أو أي غموض في
موضوع الـ Java Networking بتزول اليوم بإذن الله
تعالى الـ socket
هاني بدأت شغلتي الـ eclipse وانشأت project
جديد سميته socket project وطبعًا اتفقنا من اللقاءات
السابقة أنه لو اتكلم على network programming
بلزمني أعمل implementation لـ two different
applications واحد للـ server و واحد للـ client يعني
إن أنا هروح أنشأ الـ two classes في الأول هي بدي
أسمي الـ server class و
بدي الـ void و بدي الـ main يكون موجودة و بدي أعمل
كمان واحد أسميه client لازم يكونوا في نفس الـ
application أو نفس الـ project مش ضروري يعني ممكن
يكونوا different applications و الأصل أن هدول
يكونوا على different machine على جهازين مختلفين
with different ip address و هذا بدي أسميه أنا
client
class and two applications موجودات عندنا قلنا الـ
server-side أو الـ server-class لازم يكون معمل له
coding بالبداية و أول سطر فيه إن أنا بتعرف شغلة
اسمها الـ server-socket و بهذه بهو بتميز فيها الـ
server-socket server
Socket الـ C ساوي الـ New Server Socket وقلنا إن
الـ Server Socket تلزم نحدد Port وهذه الـ Socket
مهمتها تخلّي الـ Server Side بيعمل Listening لأي
request يعني وكانوا بيخلّي الجوال شغال عشان لما أي
حد يتصل عليا يكون يكون جاهز لاستقبال الرسالة
اللى موجود عندي أو استقبال الاتصال اللي جاي طيب
ايش رقم الـ port اللي أنا أختاره أنا قلت لكم
بالحرف الواحد من واحد لحد الف واربع وعشرين هدول الـ
ports محجوزة للـ operating system وبالتالي أنت بدك
تختار Port برة الـ range هذا طيب يعني ممكن أنا
أختار مثلًا عشرين تلاتين as port بيمشي الحال واحنا
بيقول لك عدد الـ port بتوصل لحد 65 ألف قليل
وبالتالي هذا الـ port okay تمام أنا هيك عرفت الـ
server socket الـ server socket تعمل generation لـ
exception أو تعمل raise لـ exception هاي بدي أحطها
ضمن throw أو try to catch لأنها بتعمل throw لـ
input output exception تمام ما هي الخطوة التالية
بعد ذلك؟ المفروض أن أجعل الـ server يعمل الـ
listening والـ listening يتم خلال الـ method اسمها
accept هذه الـ socket طب أنا هقول عشان يظل ... شوفي
لو أنا كتبت له الـ socket أو الـ server socket dot
accept هيك هيعمل request أو يظل ينتظر connection
واحد فقط بمجرد إنه يقبل الـ connection مثلًا هاي
بتحط هنا جملة طباعة as out I end of server code
نهاية الـ server code اللي موجود عندها بمجرد تيجي
الـ connection و بتنقبل الـ accept كل هذه بترجع بـ
object من نوع socket معناته سأقول له socket client
equal و سنسميه sv هذا على أنها server sv sv وهذا
client import plus socket كمان الأيام قبل هي دي
المفروض ندخل في مرحلة الـ wait يعني هيواجه عند الـ
accept وليس هيكمل هي us out weighting
for new connection تمام
طيب هيك خلاص الـ socket جاهزة اه جاهزة تعالى نشوفها
في
الـ client هروح أعرف socket من البداية
الـ new socket و الـ socket object بتاخد مني
شغلتين بتاخد مني الـ host name أو الـ IP address
تبع الـ server ايش الـ server و الـ IP address تبعته
احنا بما إنه أنا الآن بشتغل على نفس الجهاز اما
بكتب له localhost تمام أو بأضيف الـ IP address 127
.0
.0.1 اللي احنا بيسميه الـ loopback address أو الـ
local IP address طب الـ port بدي أضيف الـ port اللي
أضفته عند الـ server اللي سميناه كتاب عشرين تلاتين و
طبعًا هذه بتعمل برضه raise the exception
لاحظي الآن الـ basics أو الـ component الخاصة بالـ
connection جاهزة وفيه أجربها أنا الآن أشغل الـ
server waiting for a new connection يعني وين هان؟
والآن لاحظي هو موصلش للنهاية لأنه واقف في مرحلة
accept لأنه قاعد يعمل wait هنتظر أروح أشغل الـ
client الـ client المفروض لاحظي
ايش طبعًا للـ server؟ end of server code اللي هي
الجملة الأخيرة بمعنى آخر هو accepted الـ connection
تبعي وكمل لنهاية الـ code اللي موجود طيب الآن هل لو
في عند كمان clients بدأ شغله كمان مرة حيشغل؟
الكل تأكيدًا لا connection refused ليش؟ لأن أنا عامل
الـ listening لمرة واحدة لأن أنا عامل الـ listening
لمرة واحدة قبل الحل بدي أعمل while تظل شغالة إلى
ما لا نهاية بدي أعمل while تظل شغالة إلى ما لا
نهاية while
true infinite loop
حاول اعمل format للـ code source format while while
true صحيح ايش في عندنا هان؟
نعم
أما هي أنا بدي إياها بقى لا مش بعد الـ try بعد الـ
while هي الـ ghost هي الـ ghost تبع الـ while هي بس
ليش مدي عليها خطأ مش .. لا حاول ولا قوة يا الله
بالله source
format name
end
unreachable code يعني وكأنه معتبرها برة الـ try
يعني
هاي الـ try و هي كانت جواها هي كانت جواها الـ try
أنا فاهمها بس ليش هو بيقول لي unreachable code
anyway
بدناش نظل واقفين هنا نحاول نشوف ايش المشكلة في
الخطأ اللي موجود هنا تمام الآن بدي أشغل الـ server و
بس عشان أتأكد إنه فعليًا صار في connection وأكد على
شغل تاني هلأ كنت بقول لك إياها هيبدأ يطبع الآن
connection
has
been established تمام الـ new connection has been
established تمام هيران؟
هي الآن الـ server بيعمل waiting لما أروح أشغل الـ
client اشرح قال لي connection has been established
ورجع مرة ثانية لـ while وعامل wait for income
request طب لو أنا بدي كمان client بقدر اه بقدر أشغل
الـ application تبع الـ client كمان مرة هاي كمان مرة
هاي قال لي a new connection has been established و
بعمل wait وهاي كمان مرة الآن أنا قاعد بقول إن في
عندي three different clients عاملة connect مع مين؟
مع الـ server الآن من المرة الماضية أو المحاضرة
الماضية قلت كلمة مهمة جدًا إن الـ server socket لا
تستخدم من أجل نقل البيانات فقط من أجل تحقيق
الاتصال طب مين الـ socket المسؤول عن نقل البيانات؟
الـ socket الـ socket هذه اللحظة اللي موجودة عند الـ
client و الـ socket هذه اللي كانت عملها creation
من خلال الـ accept method أو الـ server socket
هدولتين هما المسؤولية عن مين؟ عن نقل البيانات بين
الـ client و بين الـ server وقولت كمان إن هاد الـ
connection صار على new port مختلف تمامًا عن الـ
port اللي بينعمل عليه listening عشان أتأكد أكثر
بدي أروح أضيف على الـ .. الـ .. الـ .. الـ .. الـ .. الـ
.. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
.. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
.. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
.. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
.. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ .. الـ
الـ .. الـ .. العن الـ method accept هروح أقول له
هنا أنا الـ client.getPort هات لي الـ port الأصل أن
الـ board هذا يطلع رقم مختلف عن رقم العشرين تلاتين
اللي أنا بعمل عليه لسنين هاي بدو يجي في ال running
applications شغل ال server side دخل في مرحلة ال
wet الآن هاي ال client وبده أشغله أول مرة هيو راح
جالي إيش؟ connection has been established on 57253
الـ board الآن ال connection أو ال data هتترسل ما
بين ال client و ال server عبر الـ board 57253 طيب
لو أنا عملت كمان new connection الأصل ياخد
different board لأن الـ board ده already حجز
للاتصال بين ال client أول و ال server هي كمان مرة
بدي أشغله، هاي الـ server راح تقابلها كمان مرة الـ
new connection has been established على board جديد
رقمه 56 وهكذا كل ما أعمل connection جديد بال
accept هتعمل generate a new socket بـ different new
board وهتعمل ربط ما بين ال client و ال socket
الجديدة اللي موجودة عندها من أجل نقلة البيانات
واضحة الجزئية هي يا بنات وبالتالي server socket
عشان أعمل listening socket عند ال client بتعمل
request في الأول accept بتعمل generate لسكت جديدة
عند ال server side وبتربط الـ two ما اسمناها ال
socket هي عبارة عن end point connection بتربط ال
end point connection لـ client مع ال server عبر ال
board لجديد هذا وبتظل تعمل listening على الـ board
اللي موجود مع ال server socket طبعا هذه الجزئية
المفروض أن اضحكت ومافيش فيها أي مشاكل في حد فيها
عنده أي سؤال يبقى يناظر في هذا الموضوع؟ طبعا ننتقل
لجزئية نقل البيانات أنا الآن بدي أبدأ أرحل بيانات
قلت أنا الشغل التاني اللي بتهمني في ال connection
أو لما تكلمنا عن ال networking قلنا في ال
connection أو بالزمن أنا إيش الأربع شغلات الأساسية مع ال
socket أن أعمل connection وهي حققناها من خلال مين؟
من خلال كلمة socket، مصبوط؟ الثانية والثالثة أن
يعمل input أو send و receive send و receive ميناته
أن أنا بدي أعمل input stream و output stream كمان
الآن بدي
أشتغل على ال buffer reader على سبيل المثال buffer
reader هيمثل
input stream بظبط يساوي new
buffered reader الآن
سابقا كنت ببدل ال buffer reader file input stream
تمام؟ أو file reader بس الآن هنا ال source تبع مش
file ال source تبع مش file ال source تبع مين؟ ال
socket ال socket هي عشان أجيب ال input stream
تبعتها لازم أعمل ال new input
stream reader بدي أعمل reader لازم أعمل reader و
ال reader هذا بده ينبني على ال socket الخاص بال
client dot get input stream كمان
مرة خلينا بس هي كده نعمل الشاشة بشكل أفضل عشان
تكون كلها إيش جدا من الصدر
بقي كمان واحد تمام الآن هاد هيك 100% إيش اللي أنا
عاملًا بقى أسوي ال buffer reader بنيتها على input
reader input stream reader وال input stream reader
هاد ربطها بال socket input stream ربطها بالسكت
input stream يعني الآن هصير أتعامل مع ال input
stream مع السكت وكإني بقرأ من file ال buffer
reader فيها method read و read line مظبوط مش هدول
اللي شفناهم مع ال buffer reader الآن أنا ممكن
أستفيد منهم في القراءة من الملف كذلك لما أنا بدي
أكتب على السكت هاي بدي أعتمد على ال buffer writer
على سبيل المثال
عندي أسميها out buffered
writer بنفس الكيفية السابقة هيكون في عندي هنا new
output
streamwriter وفي داخل ال input streamwriter ال
output streamwriter هقول لك ال socket تبعتي هي ال
client socket هي dot getoutput stream وبهيك
صار في عندي أنا وفي
عندي buffer reader و buffer writer على مين؟ على ال
socket الآن وقت إيش ال plane بكتب على ال socket
بقدر أقرأ من خلال مين؟ الـ buffer reader وانتهيش
للسر اللي بدي أكتبه أنا بكتب من خلال ال buffer
writer نفس الكود هذا تمام؟ بدي يكون وين؟ عند ال
client بس على ال socket اللي موجود عند ال client
نعيده مرة ثانية مافيش مشكلة buffer reader input
هتكون هيكون الـ NewBufferedReader والـ
BufferedReader هذه هنبنيها على
NewInputStreamReader
والـ InputStreamReader هتاخد الـ object اللي بخاصة
بالـ socket.getInputStreamBufferedWriter
بنفس الكيفية BufferedWriter out
New Buffered Writer الـ Buffered Writer هتتبني على
Output Stream Writer والـ
Output Stream Writer هتاخد الـ Constructor تبعتها
هياخد Input Stream أو Output Stream الخاصة
بالسوكيت اللي موجود عندي Dot Get Output Stream
تمام
أنا الآن كل اللي عملته بعد ما عرفت ال socket
تمام أنشأت عليها buffer reader و buffer writer لسه
أما كتبتش data طيب هل أنا إيش اللي بيصير بعد هيك
عملية قراءة أو كتابة من ال buffer مثل ما كنت
بتعاملي مع الملفات بالتمام ولا إيش هتختلف عندك ولا
إيش هيختلف عندك الآن إذا ال server أو عفوا إذا ال
client بدي يكتب في الأول هيروح على الـ out اللي هي
ال buffer writer مصبوط dot write إيش بكتب كتبي؟
hello thanks
for accepting my request على سبيل المثال
الآن هذا الـ buffer انكتب على مين أنت كتبت وين
كمان مرة على الـ buffered writer انكتب على الـ
socket ولا ما انكتبش أنت بتلزميه من خلال الـ
method اسمها flush تتذكروها بقول الـ flush
method بتجبر ال content اللي في ال buffer أن وين
يكتب على ال target تبعته مين ال target تبعته ال
socket؟ وما تنسيش أن ال socket الآن تبع ال server
side اللي نفترضها بإيدي اليمين وال client side
إيدي اليسار already connected مع بعض وبالتالي هما
socket واحدة أصبحت فأنت بتكتبي لما تعمل flush
بتجيب من ال buffer اللي عندك في ال application
يكتب عليه ال socket واللي موجود في ال socket
already هنكتب أو يتاخد من ال socket الثانية طيب
تعالى نشوف ال server-side بده يقرأ عشان ال
server-side يقرأ ال content اللي موجودة في ال
socket هاي هروح أقول له string ال text أو str يساوي
input dot read line اه
بس okay
هذا الموضوع يبدو مشكلة بسيطة ولكن بحلها الآن
سأشغل هذا الموضوع وعشان أتأكد أن السيرفر طبعا أو
السيرفر قرأت ال text اللي موجود سأقول له ال
String dot to upper لكي أحولها كتلة لكرم هذه
السيرفر اشتغل ويعمل ال weighting هذه الشركة شغلت
ال client إيش صار فيه عندي؟ صار فيه عندي exception
تمام وقال لي connection reset وقال لي في ال
buffered read line في مشكلة في سطر 28 على ال
server-side 28 على ال server-side السطر هذا السبب
.. السبب أن ال method اللي أنا استخدمتها right إيش
بتساوي؟ أخدت النص اللي موجودة وكتبته ال buffered
reader اللي أنا استخدمت إيش استخدمت؟ read line هل
في slash n عشان ينهي نهاية السطر؟ لأن ماعنديش
slash n طيب لو أنا قلت له يعني لو استبدلتها بـ read
بالميثود
التانية ال
read دي إيش بترجع؟ عمالة بترجع بـ integer وإذا
بتذكري كنت لما كنت بعمل ال while مع ال read بقول
له لا يساوي نقص واحد، مصبوط؟ ومع ال read line كلها
تساوي null، صح؟ وبالتالي أنا بروح أعملها casting
خلاص،
بنحلها، بنرجع ال text هنا read line زي ما كانت وكل
المطلوب مني هنا في ال code هذا أن أحط slash n عشان
يصل نهاية السطر ارجع مرة ثانية أشغل أروح أشغل ال
client لاحظي اشتغل مافيش فيه أي مشكلة وهي ال
server side طبع النص اللي وصله من وين من ال client
واحنا في ال server side قولنا له حاولوا لمين ل
uppercase فطبع ليها هي uppercase hello thanks for
accepting my request وبالتالي ال data انتقلت طيب،
الآن لو هذا ال client ال server ما زال شغال و بدي
أعمل ال new client و أغير في ال text اللي موجود
ممكن؟ اه ممكن هي save و بس طبعت كلمة hello لحالها
شغلت ال client كمان مرة أخد جالهاي في connection
جديد استابلش على ال board هذا و بعت منه يعني أنه
الآن اللي بعد ال accept هيظل في ال way لحد ما ال
accept تأخذ new connection و نشتغل فيها تبعا
ممتاز طيب الآن لو بدي أعمل العكس لو أنا بدي أخلي
ال client أو ال server يكتب ال text هذا أو بلاش
يرد له بال length تبع ال text اللي موجودة في ال server
الآن طبعا لما بدي أعدل على السيرفر حتى لو أوقف
لما بدي أعدل على ال server لازم أوقف ال connection
اللي موجود عشان أشوف إيش اللي بيحصل لاحقا طيب خلصنا
الآن ال server بده يكتب عند ال client بده يكتب عدد
يحوله إياها و يرد له مثلا بالعدد تبعها هاي out
اللي هي output stream تبعتنا ال output writer dot
write أنا بدي أخد ال string هذا و أطبع له كما هو باس
كابيتال letter هي plus عشان أكتبه as a new line
هاي slash n تمام و بدي أطبع كمان و كمان سطر out
dot write ال str dot length بس
بدي أكتب له text string length
equal plus str.length plus ما تنسى slash n عشان
أنا أقرأها إيش كسطر ثاني و الآن هروح أخلي يعمل out
عشان أتأكد أنه كتب هقول out.flush الآن ال client
أو ال server كتب سطرين على ال socket ال server كتب
سطرين كتب ال text as uppercase تمام؟ و السطر الثاني
رجع بقى كتاب لل text الثاني مع ال length اللي
موجودة اه الآن لو أنا ما كتبتش flush أو بين جوسين
هل ضروري أنا أكتب ال flush؟ مش ضروري بس ما فيش ضامن
إن ال data انتقلت من ال buffer لل socket ما فيش ضعيف
من إن ال data انتقلت من ال buffer لسه سكت عشان
أنا أضمن عملت الكتابة تمت لازم أعمل flush خلينا
نشغل بدون ال flush و نشوف شيء ما بيصير هل أنت مانت
مانت مانت مانت مانت مانت مانت مانت مانت مانت مانت
مانت مانت مانت
مانت
تمام
شغلت
لحظة أنا على مستوى ال client ما قرأت النص اللي
كتبه ال client، ال server، مظبوط؟ خليني الآن بدي
أقرأه، هاي ال string اللي سميها ال data، دعنا
نسميه مثلا N dot read line، لحظة شوية، بس واحدة
واحدة، ال read line هذه إيش هتساوي؟ هتقبل أول سطر
100% هيرن؟ هيه قرأ ليه أول سطر؟ شفتي؟ ما قراهوش،
ما كتبهوش؟
ما كتبهوش؟ ال client ما كتبش ولا حاجة أو خليني ننتقل
لـ client فن ما كتبش ولا شيء، ليش؟ لأن أنا مش ضامن
إن ال flush فعليا كتبت ولا ما كتبتش، بس هذه الفكرة
عشان اللي قلت لك ما فيش ضامن لعملية الكتابة هو الأصل
الآن إن بعد ما أكتب أعمل close لأن خلصت من ال
socket ال close فيها auto flush بس أنا ما بديش أعمل
ال close بس أنا ما بدي أكتب مرة ثانية و ثالثة و
رابعة على نفسي ال software بتالة مش لازم أعملها
close هرجع عند ال server أفعل ال flush أشغل
من جديد شغلت ال server أروح على ال client هي run
okay
ما طبعش هنا خطأ
لأ هي طبعا okay بس دلت ال console الخاصة بال
server هي اللي قدامي أنا عمال يبقى اتقال هيها شوف
البنات هي شاشة ال server لأ ما فيش عليها حاجة لما
اتقالت لل console قبل شوية كانت فاضية لأ هي كاتب
بس كاتب سطر طبعا الحل أترق السطر الثاني ماشي الحل
okay يعني أنت قاعد بتقولي أعمل هيك كمان مرة بس
بدون تعريف ال data هي ران لـ client هاي جاب ليها طب
لو ال server كان بيقرأ من ملف و بيكتب على ال socket
بدي أعمل ال while loop لازم أعمل ال while loop
واضح لحد اللحظة تمام؟ كمان مرة أنا اللي قاعد بقى
أقوله هاي ال server راح يكتب تلت أسطر أو سطرين
مختلفات على ال socket عاجب .. جملتين بقدر أروح
أكتب مرتين أو أقرأ مرتين لأن أنا عارف كتب two line
لكن لو كان في line .. في .. بيقرأ .. بي .. عفوا
المفروض أن ال server الآن يقرأ ملف أنا بقى ما أعرفش
حجمه و بيقرأ سطر سطر و السطر اللي بيقرأه بيكتب
وين؟ بالكتب اللي هي على ال socket ماذا سأفعل؟ أقرأ
اللوب الخاص بي خليني أكتب كمان كمان سطر ال
new string و
أحتفظ بس بال connection هذه
تمام، هيك صارت ال server بدي أكتب three lines
three different lines تمام الآن لما أنا بدي أعمل
loop عشان أنا أرتاح من هدول إيش المفروض أساوي؟
جاب لي ال why تتذكروا كيف كنا نقرأ من ال buffer
reader؟ كنا نقول له عفوا while ال
line يساوي ال input أو ال buffer الريدر dot read
line هذا لا يساوي null صح طالما هو لا يساوي null
كنت أروح أجمعه في ال data و كنت أنا من البداية كنت
معرف string line equal فاضي صح و بعرف string بتجمع
عليه كل ال data هاي كمان string
Served Data أو SRV Data برضه تساوي فاضية والآن
طالما أن في أسطر موجودة في ال socket أو في ال
buffered reader اللي عندي اقرأ ليهم سطر ورا الثاني
بظبط هروح أقول له أنا Served Data plus equal
ال line plus slash n عشان أحافظ إن كل سطر ينكتب
بشكل مستقل أظبط؟ و في الآخر بدي أروح أطبع ال
serve data كمان
مرة يا بنات هذه ال slash n أنا بأضيفها لأن ال
slash n مش هتطلع مع ال line اللي فوق مع هذا ال
line هتقرأ كل نص اللي جاب لي ال line صح؟ و بالتالي
أنا الآن بدي أشتغل بالمنطق هذا بدي أطبع لهم أسطر
تلت أسطر ورا بعض ما فيش عندي مشكلة بقى أضيف ال line
اللي موجودة عندي save أروح أشغل ال server ال
server waiting for a new request إنه new
connection شغلت ال client أروح
على ال client side
ما قرأش؟ ما دعمش ولا شيء؟
okay إيش في خطأ عندنا هنا؟ request طيب قعدوا أذنكم
أنا بدي أقرأ أول سطر بس أتأكد أن الأمور تمام اللي
هي ال in dot read line هيك بيظل سطرين
السطر الأول مصبوخ قبل ما يدخل في اللوب
و معناه هيك الكلام إنه اعتبر إنه Hades هو اتنال من
البداية
ال server ما زال شغال تمام، هيك بس عندنا ولا
application للسيرفر، لا حول ولا قوة خليني
هاد هيك
readline readline readline جابهم 100% عدوا في ال
loop كان فيه مشكلة إن ال condition تبعتنا هي ما
اعتبرتهاش صحيحة طيب دعوني أشوف مشكلة ال loop اللي
عندنا هنا germinate
Okay تعال نشوف إيش فيه مشكلة في اللوب هنا سيرف
داتا يعني هو فعليا ما دخلش على اللوب اللي موجودة
عندي هنا scroll console clear نعم
debug as java application yes داخل
ال Y لحظة جملة جهة الطباعة ما دخلش ال Y المطلق
هنا يا أستاذ لو دخل لجهة قيمة ال data مش مشكلة هلأ
بنحط جملة طباعة جوة هنا okay
ال server ما زال شغال تمام ال client أنا بدي أوقفه
بشغله كمان مرة
أولا، كونه طبع تلت مرات ما شاف ال text فعلا three
lines طيب طيب أنا بدي أروح أقول له اطبع لي ال line،
ما بديش تطبع لي test علشان بس أعرف، لأن الصحيح مش
شايف إن قدامي خطأ هاي كمان مرة هاي،
جاب؟ طب جملة ال concatenate دي هي خطأ؟
لحظة إنه قرأ السطر و جمعه صح ما فيش فيه مشكلة يعني
بس المشكلة إحنا
بالطبع ما كناش نعرف الأسنان يعني نعم كنا كنا كنا
كنا كنا كنا
كنا كنا كنا كنا كنا كنا كنا كنا كنا كنا كنا الآن
shared data الله
أكبر يعني حد جماعة الخير يقول إيه هو الخطأ أنا مش
قادر أمسكه الصحيحة يعني هاي بطبع الـ line ترميت
تمام هاي طبع الـ line 100% هاي الـ line طبعها جملة
طبعها جوا اللي هو غلط هذه اللوحة كانت تبع غلط، تنفعش
بنفعش أضيف كله على سطر واحد، على الـ string واحد،
لأن هيك هيصير يحتفظ بس في آخر سطر، فأنا بدي كل الـ
texts فلازم يكون accumulative، تراكمي، أجمعه، و
تراكمي بالـ text .. بالـ code اللي أنا كاتبه هنا
جملة الطباعة كلها موصلهاش جملة
الطباعة كلها موصلهاش يعني و كانوا بقال شغالين في
اللوغ طيب هي out.close
Okay لأن السيرفر اضفها لا حاجة ولا غلط
الآن احنا فعليا خلصنا ما فيش فيها مشكلة لا في الـ
loop ولا كده بس في خطأ مش قادرين نحط إيدينا عليه أو
إيش مشكلته هلجت من هنا أو ممكن نخلص للمرة الجاية
بنزلكوا الـ code شغال على الأقل أحاول أو أعرف وين
الخطأ اللي موجود معانيه اللي مش قادرين نحط إيدينا
عليه حد فيكم شايف خطأ يا جماعة الخير؟ الخطأ في الـ
connection هاي لأن هاي شوف إيه آه آه آه طيب عشان
أنا أنهي بدي أروح أشتغل بالطريقة التقليدية جدا الـ
serve plus ما هي اللي كنت بدي أشتغل؟ serve data
plus line برضه
لأ anyway يعني هو مش .. الفكرة كيف؟ماطبعهاش آه
anyway أحاول
على قوة اللي أقولها serve data آخر محاولة
طبعًا حاش في شغلة غلط ومش راضي تجمع أو تجمع الـ text
لو رجعتي لشغل الـ files هتلاقي إن الـ code شغال 100%
على كل حال من ناحية الـ socket و تنقل بيانات ما بين
الـ client و الـ server
مهمش اشتغلوا كمان مرة الـ client connection
refused احنا على كله نخلص وجهتنا كمان الاخر run هي
waiting هي الـ client run هذا الآن عند الـ client بس
ليش رجع طبع إيه طبع
سيرفر ريسبونس هاي هان عشان احنا نطبع هان
إيران سيرفر
ريسبونس هاي هان طيب و هدول من وين جوا؟ طيب الله
يعطيكوا العافية و هو يا أنا يا الجهاز اللي فيه
مشكلة اليوم الله يعطيكوا العافية لهيك احنا من
ناحية شبكات أمورنا تمام إن شاء الله تبارك وتعالى و
نشوفكوا إن شاء الله في المحاضرة الجاية و نتكلم عن
الـ multi-threading الله يعطيكوا العافية بنات