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

[تنبيه - عنوان غير مناسب : ]مساعدة تغيير كود

بدأه yamur في 7 ديسمبر 2008 · 5 رد · 531 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

يا جماعه انا عندي مشكلة وهي سويت برنامج

client and server على شكل شات والبرنامج مضبوط جدا ويستخدم socket ولكن نحتاج نغير عليه ونطوره بشكل جيد فهل من مساعد لتغيير الية البرنامج

اولا عندي ملفين الاول sever والثاني client / الاول يسجل كل الرسائل الخارجة والواردة وهو لتسجيل المعلومات اما الثاني فهو كود جميل استخدمت فيه thread حتى اتمكن من تنفيذ البرنامج اكثر مرة وعند تنفيذ البرنامج 3 مرات كل واحد من هذه البرامج يكون السيرفر في حالة الارسال الى البقية والكلاينت في حالة الاستقبال من البرامج الاخرى يعني يعمل Broadcast

اذا امكن مساعدتي بتغيير الكود بحيث يتضمن مصفوفة يحتوي على عدد من العناصر المحددة وعندما يقوم البرنامج الاول بسؤال البرنامجين الاخريين هل عندك في مصفوفتك رقم معين حيث يقوم الجهاز الاخر بالرد التلقائي Auto Response بانه يوجد عند اولا يوجد عندي ويتم الرد خلال وقت محدد للرسالة المرسلة وهي مثلا 3 ثواني واذا لم يرد السيرفر يقطع socket

----------------------=============

هذا هو الكود ياريت تغيروا وتلعبو فيه >>>>>>>>>>>> الكود في المرفقات

----------------------=============

import java.awt.*;

import javax.swing.*;

import java.io.*;

import java.net.*;

import java.awt.event.*;

public class Chat extends JFrame

{

Container conti;

JButton b1,b2,b3;

JTextField tex1,tex2;

JTextArea texArea;

JLabel leb1,leb2,leb3;

int serverPort = 1234;

JPanel p1,p2,p3;

DatagramSocket socket;

Font font;

String name[] = new String[100]; //Max number of client in my chat,each num is client

String myname;

int counter=0;

public Chat()

{

super("Chat send data");

conti = getContentPane();

conti.setLayout(new BorderLayout());

font = new Font("Arial",Font.BOLD,15);

p1 = new JPanel();

p2 = new JPanel();

p3 = new JPanel();

//------ Create Socket

try

{

socket = new DatagramSocket();

}

catch( SocketException socketException )

{

socketException.printStackTrace();

System.exit( 1 );

}

///////Declerations of all Buttons

b1 = new JButton("Enter Chattt!");

b2 = new JButton("Send Message");

b3 = new JButton("EXIT");

///////Action Handling for all button

RegAddDeletClasHandler handler = new RegAddDeletClasHandler();

b1.addActionListener(handler);

b2.addActionListener(handler);

b3.addActionListener(handler);

//------- Fields 1 for enter neck name

leb1 = new JLabel("Enter The Neck name!");

leb1.setFont(new Font("Arial",Font.BOLD,17));

p1.add(leb1);

tex1 = new JTextField(20);

p1.add(tex1);

p1.add(b1);

conti.add(p1,BorderLayout.NORTH);

//-------

//------- Fields 2 for output name & Content

leb2 = new JLabel();

leb2.setFont(font);

p2.add(leb2);

texArea = new JTextArea(20,30);

texArea.setFont(font);

texArea.setEditable(false);

p2.add(new JScrollPane(texArea));

conti.add(p2,BorderLayout.CENTER);

//-------

//------- Fields 3 for sends Messages & exits

tex2 = new JTextField(30);

p3.add(tex2);

p3.add(b2);

p3.add(b3);

conti.add(p3,BorderLayout.SOUTH);

//-------

setSize(650,500);

setVisible(true);

} //end Constructor

private void waitforpacket()

{

// wait packet form server and play it

while(true) //always check for recive packet

{

try

{

byte buffer[] = new byte[ 1000 ];

DatagramPacket recivepacket = new DatagramPacket(buffer,buffer.length);

socket.receive(recivepacket);

DisplayMessage("\n"+ new String(recivepacket.getData(),0,recivepacket.getLength()).trim() +"\n");

}

catch( IOException ioException )

{

ioException.printStackTrace();

}

} // end while

} // end method

private void DisplayMessage( final String messagetodisplay )

{

SwingUtilities.invokeLater ( new Runnable()

{

public void run() // update display

{

texArea.append(messagetodisplay);

}

} );

} // end method

private class RegAddDeletClasHandler implements ActionListener

{

public void actionPerformed(ActionEvent event)

{

if(event.getSource() == b1)

{

if(tex1.getText().equals(""))

{

JOptionPane.showMessageDialog( null,"You Don't Insert Neck name");

}

else

{

myname=tex1.getText();

leb2.setText("Welcome Mr/Ms [ "+myname+" ] ");

b3.setEnabled(true);

name[counter]=myname;

try

{

String messageReg = "1"+myname;

byte m[] = messageReg.getBytes();

DatagramPacket sendPacket = new DatagramPacket( m,

m.length, InetAddress.getLocalHost(), 1234 );

socket.send( sendPacket ); // send packet

for(int i=0; i<m.length; i++)

{

System.out.println(m);

}

}

catch ( IOException ioException )

{

ioException.printStackTrace();

}

counter++; // increment for new Regester

//b2.setEditable(true);

}

} // end if button 1

if(event.getSource() == b2)

{

if(tex2.getText().equals(""))

{

JOptionPane.showMessageDialog(null,"You Don't Write any thing ");

}

else

{

try

{

String message=new String("2"+name[counter-1]+" >>> "+tex2.getText());

byte m[] = message.getBytes();

DatagramPacket sendPacket = new DatagramPacket( m,

m.length, InetAddress.getLocalHost(), 1234 );

socket.send( sendPacket ); // send packet

tex2.setText("");

}

catch ( IOException ioException )

{

ioException.printStackTrace();

}

}

} // end if button 2

if(event.getSource() == b3)

{

try

{

String message=new String("3"+myname);

byte m[] = message.getBytes();

DatagramPacket sendPacket = new DatagramPacket( m,

m.length, InetAddress.getLocalHost(), 1234 );

socket.send( sendPacket ); // send packet

}

catch ( IOException ioException )

{

ioException.printStackTrace();

}

System.exit(0);//end the inteface of client who want to exit

}

}

} // end class handler

public static void main(String arg[])

{

Chat obj = new Chat();

obj.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

obj.waitforpacket();

}

}// end class chat

تم تعديل هذه المشاركة بواسطة yamur في 7 ديسمبر 2008 في 00:06

#2

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

وين هيه ردودكم يا جماعه

وش المشكلة خبروني خلي احد يساعدني

#4

وآه اسفي على زمان

#5

لا تتحسر على شيء لم تحصل عليه

وإنما جرب طرق أخرى للحصول عليه

حاول أن تبسط موضوعك

حاول أن تشرحه بطريقة أخرى

ولا تتوقع دائماً أن تحصل على حل

لكن تأكد أن المشكلة في الآخرين وليست فيك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

"لكن تأكد أن المشكلة في الآخرين وليست فيك"؟؟؟

و اقل شئ اطلع على قوانين المشاركة ولا تفتح مواضيع بعنواين مخالفة

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…