[ad_1]
أهلا أصدقائي
لدي رمز وحدة التحكم وأريد تحويله إلى تطبيق Windows Forms من أجل إنشاء مشروع لي
الرجاء مساعدتي
هذا هو الرمز:
/* Server Program */ using System; using System.Text; using System.Net; using System.Net.Sockets; public class serv { public static void Main() { try { IPAddress ipAd = IPAddress.Parse("172.21.5.99"); // use local m/c IP address, and // use the same in the client /* Initializes the Listener */ TcpListener myList=new TcpListener(ipAd,8001); /* Start Listeneting at the specified port */ myList.Start(); Console.WriteLine("The server is running at port 8001..."); Console.WriteLine("The local End point is :" + myList.LocalEndpoint ); Console.WriteLine("Waiting for a connection....."); Socket s=myList.AcceptSocket(); Console.WriteLine("Connection accepted from " + s.RemoteEndPoint); byte[] b=new byte[100]; int k=s.Receive(b); Console.WriteLine("Recieved..."); for (int i=0;i<k;i++) Console.Write(Convert.ToChar(b[i])); ASCIIEncoding asen=new ASCIIEncoding(); s.Send(asen.GetBytes("The string was recieved by the server.")); Console.WriteLine("\nSent Acknowledgement"); /* clean up */ s.Close(); myList.Stop(); } catch (Exception e) { Console.WriteLine("Error..... " + e.StackTrace); } } }
ما حاولت:
حاولت البحث في جوجل عن حل لكن دون جدوى
الحل 1
في حالتك، تحتاج إلى التفكير في موضوع عامل، وأود أن أوصي بالبساطة فئة العمال الخلفية .
النقطة المهمة هي أن واجهة المستخدم الرسومية الخاصة بك سوف تتجمد عن طريق إجراء الحظر كما تفعل:
/* Initializes the Listener */ TcpListener myList=new TcpListener(ipAd,8001); /* Start Listeneting at the specified port */ myList.Start();
الحل 2
الحل 3
في الأساس، لا تفعل ذلك.
تهدف تطبيقات وحدة التحكم إلى التشغيل بالطريقة التقليدية القديمة وتسمى “التطبيقات الإجرائية”: يخبر الكود المستخدم بما يجب عليه فعله ويتحكم فيه في جميع الأوقات.
تطبيقات Windows لا تفعل ذلك: فهي تستجيب للأحداث (التي يوجد عدد كبير منها) وتفعل أشياء نتيجة لذلك – يكون المستخدم (على الأقل اسميًا) هو المسؤول ويمكنه فعل أي شيء يريده بأي تسلسل يناسبه.
فأين سيذهب تطبيق وحدة التحكم:
"Enter name:" "Enter address:" "Insert to database? (Y/N): "
سيحتوي تطبيق Windows على مربعي نص وزر “إدراج” – ويمكن للمستخدم ملء ما يريد والضغط على الزر عندما يكون جاهزًا.
لذا فإن تحويل تطبيق وحدة التحكم إلى Windows ليس أمرًا بسيطًا، ولا ينتهي به الأمر إلى تطبيق Windows “جيد” – وفي حالتك، فإن ما ينتهي به الأمر هو تجربة محبطة للغاية للمستخدم لأنه لا يمكنه معرفة ما إذا كان لقد تعطل التطبيق أو أنه يعمل لأن معظم ما يفعله الكود هو تنفيذ ما يسمى “حظر المكالمات”؛ تلك التي لا تعود حتى تكتمل العملية بالكامل، والتي يمكن أن تستغرق ما بين ثوانٍ وإلى الأبد!
يعد استخدام هذا الرمز في تطبيق Windows الذي لن يتم إلغاء تثبيته مع التحيز الشديد أمرًا معقدًا للغاية: ستحتاج إلى التعرف على مؤشرات الترابط والاستدعاء وكيفية الحصول على المعلومات وتقديمها للمستخدم.
في الأساس، إذا كنت تريد تشغيل تطبيق دردشة Windows، فابحث عن تطبيق دردشة Windows – هناك الكثير منها – فأنت لا تريد أن تبدأ من إصدار وحدة التحكم!
[ad_2]
コメント