SocketServer và Socket

0 nhận xét
viết giao diện để dùng ServerSocket và Socket
PHÀN SERVERSOCKET
Giao diện
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.BorderLayout;
public class Panel extends JPanel{
    public JTextArea text = new JTextArea();
    Panel(){
        BorderLayout Layout = new BorderLayout();
        setLayout(Layout);        
        JScrollPane js = new JScrollPane(text);        
        add(js,Layout.CENTER);
    }
}
Hoạt động
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server{
    static Panel p = new Panel();       
    private static final int port = 8000;     
    public static void main(String args[]){
        ServerSocket serverSocket = null;
        DataInputStream dataInputStream = null;
        DataOutputStream dataOutputStream = null; 
        JFrame f = new JFrame();        
        f.setTitle("Server");
        f.setLayout(new BorderLayout());
        f.setSize(300,300);        
        f.add(p);        
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        try{            
            serverSocket = new ServerSocket(port);                                 
            Socket clientSocket = serverSocket.accept();                 
            dataInputStream = new DataInputStream(clientSocket.getInputStream());
            dataOutputStream = new DataOutputStream(clientSocket.getOutputStream());
        }
        catch(IOException e){            
        }    
        try{
            dataOutputStream.writeUTF("Welcome to the TCP Echo  Server!");
            String input;
            while(true)    {                
                input = dataInputStream.readUTF();
                p.text.append("Received:  " + input+"\n");                  
            }
        }
        catch(IOException e){
            p.text.append("Client disconnected from server\n");
        }        
    }    
}    
PHẦN SOCKET
Giao diện
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.BorderLayout;
public class Panel extends JPanel{
    public JTextArea text = new JTextArea();
    public JTextField t = new JTextField();
    public String a = new String();
    Panel(){
        BorderLayout L = new BorderLayout();
        setLayout(L);        
        JScrollPane js = new JScrollPane(text);        
        add(js,L.CENTER);
        add(t,L.SOUTH);           
    }    
}
hoạt động 
import java.net.Socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Client{
    public static class TCPEchoReader extends Thread
    {
        boolean active;
        public TCPEchoReader(DataInputStream input) {
            dataInputStream = input;
            boolean active = true;
        }    
        public void run() {
            while(active)    {
                try    {
                    String message = dataInputStream.readUTF();  
                    if (message != null){
                        p.text.append("Server: "+message+"\n");
                    }
                }
                catch(IOException e) {                    
                }
            }
        }
    }    
    static Panel p = new Panel();      
    static Socket socket;
    static DataInputStream dataInputStream = null;
    static DataOutputStream dataOutputStream = null;
    public static void main(String[] args)    {        
        BorderLayout L = new BorderLayout();
        JFrame f = new JFrame();        
        f.setTitle("CLient");
        f.setLayout(L);
        f.setSize(300,300);        
        f.add(p,L.CENTER);        
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        String address = "127.0.0.1";
        int port = 8000;        
        Socket socket = null;        
        try
        {
            socket = new Socket(address, port);        
            dataInputStream = new DataInputStream(socket.getInputStream());
            dataOutputStream = new DataOutputStream(socket.getOutputStream());         
        }
        catch(IOException e)        {
        }             
        TCPEchoReader reader = new TCPEchoReader(dataInputStream);
        reader.setDaemon(true);
        reader.start();        
            p.t.addActionListener( 
                new ActionListener(){
                public void actionPerformed( ActionEvent event ) {
                    p.a = event.getActionCommand() ;
                    p.text.append("Sent: "+p.a+"\n");
                    p.t.setText("");
                    try    {                          
                          dataOutputStream.writeUTF(p.a);                  
                          p.a ="";                         
                    } catch(IOException e){
                    }
                }
           } 
        );         
    }    
}

comment nha Vũ

0 nhận xét:

Đăng nhận xét

Copyright 2011 learn java.
Blogger Template by Noct. Free Download Blogger Template