
19-01-2011, 09:31 AM
|
 |
|
|
تاريخ التسجيل: Jan 2010
التخصص: نظم معلومات ادارية
نوع الدراسة: إنتظام
المستوى: الخامس
الجنس: أنثى
المشاركات: 4
|
|
(مساعدة Java) إضافة Bottun يظهر المستخدمين المتصلين بالسيرفر
(مساعدة Java) إضافة Bottun يظهر المستخدمين المتصلين بالسيرفر
السلام عليكم ورحمة الله وبركاته
انا عندي برنامج جاهز بلغة الجافا وابغى اعرف كيف اضيف له Bottun يظهر لي المستخدمين المتصلين بالسيرفر :confused::confused:
البرنامج TCP Chat
هنا السيرفر
كود PHP:
//: TCPChatServer.java
// SYNOPSIS: TCPChatServer
// DEION: The program creates a TCP socket in the inet
// listen for connections from TCPClients, accept
// clients into private sockets.
////////////////////////////////////////////////////////////////
import java.io.*;
import java.net.*;
import java.util.*;
import static java.lang.System.out;
class EchoServe extends Thread {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public EchoServe (Socket s)
throws IOException {
socket = s;
System.out.println("Serving: "+socket);
in =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
// Enable auto-flush:
out =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
// add the connected client out stream to the vector
TCPChatServer.outToClients.add(out);
// If any of the above calls throw an
// exception, the caller is responsible for
// closing the socket. Otherwise the thread
// will close it.
start(); // Calls run()
}
public void run() {
try {
while (true)
{
System.out.println("....Server is waiting...");
String str = in.readLine();
if (str== null ) break;
TCPChatServer.boradcast(str);
}
System.out.println("Disconnected with.."+socket);
// Remove client from the vector
} catch (IOException e) {
} finally {
try {
socket.close();
} catch(IOException e) {}
}
}
}
public class TCPChatServer {
Vector<String> users = new Vector<String>();
static Vector <PrintWriter> outToClients = new Vector<PrintWriter>();
static int PORT=12345; // assign to next avalible Port.
public static void boradcast(String message) {
// send message to all connected users
for ( PrintWriter c : outToClients )
{
c.println(message);
c.flush();
}
}
public static void main(String[] args)
throws IOException {
if (args.length == 1) {
PORT=Integer.parseInt(args[0]); // assign to a given Port.
}
// Create a Server Socket.
ServerSocket s = new ServerSocket(PORT);
InetAddress addrs= InetAddress.getLocalHost();
// Or InetAddress addrs= InetAddress.getByName("localhost");
// Or InetAddress addrs= InetAddress.getByName("127.0.0.1");
System.out.println("TCP/Server running on : "+ addrs +" ,Port "+s.getLocalPort());
try {
while(true) {
// Blocks until a connection occurs:
Socket socket = s.accept();
try {
new EchoServe(socket); // Handle the incoming Client.
} catch(IOException e) {
// If it fails, close the socket,
// otherwise the thread will close it:
socket.close();
}
}
} finally {
s.close();
}
}
} ///:~
وهناا الكلاينت
كود PHP:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.net.Socket;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.JOptionPane;
import static java.lang.System.out;
public class TCPChatClient extends JFrame implements ActionListener {
private final String screenName;
// GUI stuff
private JTextArea enteredText = new JTextArea(10, 32);
private JTextField typedText = new JTextField(32);
// socket for connection to chat server
private Socket socket;
// for writing to and reading from the server
private BufferedReader in;
private PrintWriter out;
public TCPChatClient(String screenName, String hostName) {
// connect to server
try {
socket = new Socket(hostName, 12345);
in =
new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
// Enable auto-flush:
out =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())), true);
}
catch (Exception ex) { ex.printStackTrace(); }
this.screenName = screenName;
// close output stream - this will cause listen() to stop and exit
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
out.close();
}
}
);
// create GUI stuff
enteredText.setEditable(false);
enteredText.setBackground(Color.PINK);
typedText.addActionListener(this);
Container content = getContentPane();
content.add(new JScrollPane(enteredText), BorderLayout.CENTER);
content.add(typedText, BorderLayout.SOUTH);
// display the window, with focus on typing box
setTitle("Chat Client 1.0: [" + screenName + "]");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
typedText.requestFocusInWindow();
setVisible(true);
}
// process TextField after user hits Enter
public void actionPerformed(ActionEvent e) {
out.println("[" + screenName + "]: " + typedText.getText());
typedText.setText("");
typedText.requestFocusInWindow();
}
// listen to socket and print everything that server broadcasts
public void listen() {
String s;
try{
while ((s = in.readLine()) != null) {
enteredText.insert(s + "\n", enteredText.getText().length());
enteredText.setCaretPosition(enteredText.getText().length());
}
out.close();
in.close();
} catch(IOException e) {}
try { socket.close(); }
catch (Exception e) { e.printStackTrace(); }
System.err.println("Closed client socket");
}
public static void main(String[] args) {
String name = JOptionPane.showInputDialog ( "Enter your name" );
TCPChatClient client = new TCPChatClient(name, "localhost");
client.listen();
}
}
|