總網頁瀏覽量

2015年12月29日 星期二

[Java] Java網頁設計 ServerSocket_Server11_2

本章將以Server / Client端點介紹如何作網路連接。
設計Server端網路程式,等待被Client端連接;設計Client端網路程式,連接Server端。Server端以設定之執行埠(port) 建置伺服平台(ServerSocket),當Client端有訊息來連接時,以連接平台(Socket)之接收功能接受連接,並捉取Client端的網址(IP) 印出之。Client端以Server之網址(IP)、及設定之執行埠(port) 建立網路連接平台,由Client端連接Server端。

java.net.ServerSocket繼承自Object,此類別產生的新物件,可依本機之網址(IP)、與設定之執行埠(port) 建立Server端網站平台(ServerSocket),等待Client端來連接。其中執行埠(port) 不得設定已被使用者(參考附錄D),否則將無法成功建立。

建立ServerSocket網路平台

import java.net.*;
import java.io.*;
class Server11_2 {
    public static void main(String args[]) {
        try {
            ServerSocket SS1 = new ServerSocket(1234);
            System.out.println("ServerSocket SS1 is created");
            System.out.println("SS1.getLocalPort() = " + SS1.getLocalPort());
            SS1.close();
            System.out.println("SS1 is closed");
            ServerSocket SS2 = new ServerSocket(0, 2);
            System.out.println("ServerSocket SS2 is created");
            System.out.println("SS2.getLocalPort() = " + SS2.getLocalPort());
            SS2.close();
            System.out.println("SS1 is closed");
    }
        catch(IOException e) {
            System.out.println(e.getMessage());
        }
    }
}

 

開設一個port等待外界傳遞資料進入自己電腦,
利用 Java 的 ServerSocket 元件完成.
其中, 使用 ServerSocket 要在 try-catch中才可以使用.

ServerSocket元件會和兩個方法有關 ( 綁定埠和綁定IP地址)
1. getLocalPort (綁定 埠)
2. getInetAddress (綁定 IP地址)

 getLocalPort方法的返回值可分為以下三種情況:

1. ServerSocket 對象未綁定埠, getLocalPort方法的返回值為-1.
2. ServerSocket 對象綁定了一個固定的埠, getLocalPort方法返回這個固定埠.
3. ServerSocket 對象的綁定埠為0, getLocalPort方法返回一個隨機的埠
  (這類埠被稱為匿名埠)

http://www.coctec.com/docs/java/show-post-61120.html
針對 ServerSocket 細解解說

http://ephrain.pixnet.net/blog/post/44455544-%5Bandroid%5D-android-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98%EF%BC%9A%E9%96%8B%E5%95%9F%E4%B8%80%E5%80%8B-server-socket
也不錯, 當作理解工具不錯用.

這裡開設了兩個Server port, 分別是 1234 跟 56769
是(0,2)輸出 56769
而(0,3)輸出 57136
port - the port number, or 0 to use a port number that is automatically allocated.
backlog - requested maximum length of the queue of incoming connections.


public ServerSocket(int port) throws IOException
public ServerSocket(int port, int backlog) throws IOException 
由 java 網站得知 https://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html

等到更熟練之後在來寫個自己看得懂的版本.

範例來源:
Java系列概論
網路入門程式
Java System Concepts and Network Programming
賈蓉生  胡大源  林金池 編著



查一下 是由東方設計學院 提供在網路上的


沒有留言:

張貼留言