2013年9月18日 星期三

JAVA Socket

SocketSever

import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer extends java.lang.Thread{
   private boolean OutServer = false;
   private ServerSocket server ;
   private final int ServerPort = 8765;//要監控的port

   public SocketServer(){
      try{
         server = new ServerSocket(ServerPort);
      }catch(java.io.IOException e){
         System.out.println("Socket啟動有問題 !" );
         System.out.println("IOException :" + e.toString());
      }
   }

  public void run(){
    Socket socket ;
    java.io.BufferedInputStream in ;

    System.out.println("伺服器已啟動 !"  );
    while(!OutServer){
      socket = null;
      try{
        synchronized(server) {
           socket = server.accept();
        }
        System.out.println("取得連線 : InetAddress = " + socket.getInetAddress() );
        //TimeOut時間
        socket.setSoTimeout(15000);

        in = new java.io.BufferedInputStream(socket.getInputStream());
        byte[] b = new byte[1024];
        String data ="";
        int length;
        while((length = in.read(b))>0)//<=0的話就是結束了
        {
        data += new String(b, 0, length);
        }
     
         System.out.println("我取得的值:"+data);
         in.close();
         in = null ;
         socket.close();
      }catch(java.io.IOException e){
          System.out.println("Socket連線有問題 !" );
          System.out.println("IOException :" + e.toString());
      }
    }
  }

  public static void main(String args[]){
       (new SocketServer()).start();
  }
}

SocketClient

import java.net.InetSocketAddress;
import java.net.Socket;
import java.io.BufferedOutputStream;

public class SocketClient {
private String address = "127.0.0.1";// 連線的ip
private int port = 8765;// 連線的port

public SocketClient() {

Socket client = new Socket();
InetSocketAddress isa = new InetSocketAddress(this.address, this.port);
try {
client.connect(isa, 10000);
BufferedOutputStream out = new BufferedOutputStream(client
.getOutputStream());
// 送出字串
out.write("Send From Client ".getBytes());
out.flush();
out.close();
out = null;
client.close();
client = null;

} catch (java.io.IOException e) {
System.out.println("Socket連線有問題 !");
System.out.println("IOException :" + e.toString());
}
}

public static void main(String args[]) {
new SocketClient();
}
}

沒有留言:

張貼留言