الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Delete will affect on another application

مغلق
بدأه Hadad.Net في 6 أغسطس 2007 · 5 رد · 940 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

الان تواجهني بمشروع اعمل به والمشروع عباره عن برنامجين وكل برنامج موجود على جهاز ومرتبطين بنفس قاعدة البيانات موجوده على السيرفر والان اريد عندما اعمل حذف في البرنامج الاول ان يظهر تنبيه لانه تم حذف هذا السجل .

حاولت استعمال كود ClientServer لفتح ال Socket واستخدام ال Network Stream ولكن للأسف لم تفلح هذه المحاولات

فما هو الحل .. وشكرا جزيلاً للجميع

#2

ماذا تعني بإظهار تنبيه, هل تقصد ارسال رسالة نصية فقط انه تم حذف ذلك السجل إذا كان كذلك فما هي المشكلة لديك

#3

نعم أخ فادي رساله نصيه MessageBox مع اشاره BUZZ متل الياهو ماسنجر تنبهك بأن هناك حقل حذف مع اضافته الحقل الذي انحذف بلست بوكس .

وشكراً أخ فادي على ردك .

#4

اخي العزيز

بكل بساطة هذه طريقة استخدام الـSocket مع الـTCP لإرسال نصل إلى جهاز اخر

using System.Text; // For Encoding
using System.Net; // For Using Network Programming Classes
using System.Net.Sockets; // For Using Socket Classes
using System.IO; // For Input Output Streams Classes
using System.Threading; // For Multi Threading In the Same App

		void Send_Alert(string MSG)
		{
			// Creation Socket
			Socket client_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

			// Conncet with the server
			IPEndPoint ipend = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4000); // Put The Peer IP Address Here
			client_socket.Connect(ipend);

			// Encoding
			byte[] buffer = UnicodeEncoding.Unicode.GetBytes(MSG);

			// Send the Text
			client_socket.Send(buffer);

			// Conncetion Close
			client_socket.Close();
		}

كود الإستقبال

		
Socket sock;
Thread th;
		void server()
		{

			 // Creation Socket
			sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

			// Socket Binding 
			IPEndPoint ipend = new IPEndPoint(IPAddress.Any, 4000);
			sock.Bind(ipend);


			// Lestening
			sock.Listen(-1);

			while (true)
			{
				try
				{
					// Acceptance
					Socket new_sock = sock.Accept();

					// Receiving
					byte[] buffer = new byte[1024];

					EndPoint ip = (EndPoint)ipend;
					new_sock.Receive(buffer);

					// Encoding and Viewing The Received Message

					string msg = UnicodeEncoding.Unicode.GetString(buffer);
					Messagebox.Show(msg);

				}
				catch (Exception){}
			}

		}

ضع هذا الكود في بدأ التشغيل للفورم الموجود عند الجهة المستقبلة كمثال عند حدث الـForm Load

		
private void Form1_Load(object sender, EventArgs e)
		{
			Control.CheckForIllegalCrossThreadCalls = false;

			th = new Thread(new ThreadStart(server));
			th.Start();
		}

هذا كل شيء وإذا اردت الإستزادة بأمثلة جاهزة انظر الرابط http://www.fadidotnet.org/online_book/Netw...ming_online.htm وايضا المواضيع المثبتة في القسم

تم تعديل هذه المشاركة بواسطة فادي عبدالقادر في 7 أغسطس 2007 في 09:35

#5

شكرا أخ فادي

الكود الاخير تم تجربته والحمد لله الامور زبطت تمام

ولكن كيف عندما اغلق البرنامج يعمل Stop Thread

وشكرا لك مره اخرى

#6

يوجد طريقتين طريقة الية واخرى يدوية والطريقة الآلية هي بجعل الـThread يعمل كـBackground Thread وفي حالة اطفاء البرنامج سيتم إغلاق الـThread بشكل تلقائي ضع ذلك قبل عملية الـStart للـThread

th.isBackground=True

ولإغلاقه إثناء التنفيذ th.Aport

هذا الموضوع مغلق.

مواضيع مشابهة