1 / 24

課程參與度之評估方式

課程參與度之評估方式. 上課時必須專心聽講,跟上進度,參與討論 扣 分項目 玩線上遊戲一次扣 1 分 玩手機一次扣 1 分 睡覺一次扣 1 分 聊天一次扣 1 分 無法回答老師提出的問題一次扣 1 分 加分項目 主動回答老師的問題一次加 2 分 找出老師程式中的錯誤一次加 1 分 修正老師程式中的錯誤一次加 4 分. 網路程式設計 CH01 網路程式設計導論. 鄧姚文. 大綱. 網路程式的應用 實 作的方法 TCP 通訊協定應用 UDP 通訊協定應用 IPv6 網際網路標準 圖形介面. 前言. 以 JAVA 開發網路程式的優點

Download Presentation

課程參與度之評估方式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 課程參與度之評估方式 • 上課時必須專心聽講,跟上進度,參與討論 • 扣分項目 • 玩線上遊戲一次扣1分 • 玩手機一次扣1分 • 睡覺一次扣1分 • 聊天一次扣1分 • 無法回答老師提出的問題一次扣1分 • 加分項目 • 主動回答老師的問題一次加2分 • 找出老師程式中的錯誤一次加1分 • 修正老師程式中的錯誤一次加4分

  2. 網路程式設計CH01 網路程式設計導論 鄧姚文

  3. 大綱 網路程式的應用 實作的方法 TCP通訊協定應用 UDP通訊協定應用 IPv6 網際網路標準 圖形介面

  4. 前言 • 以 JAVA 開發網路程式的優點 • JAVA 提供易用的網路程式介面套件 • JAVA 具備多執行緒功能,可以讓通訊過程更順暢 • JAVA 跨平台 • 缺點 • JAVA 不支援低階的網路協定 • 不支援 ICMP • 受到安全機制的限制

  5. 網路程式的應用 • 網路協定 Network Protocol • 通訊協定 Protocol • TCP/IP 是目前使用最廣泛的網路協定 • 基於 TCP/IP 的應用 • WWW、FTP、Email、Skype、P2P、連線遊戲、網路電話、網路電視 • IPv4 的 IP 位址已經發完 • IPv6 還不流行 • 為什麼不用 IPv6 ?

  6. 網路程式的應用傳輸資料 • FTP • File Transfer Protocol • 檔案傳輸協定 • 工具:Filezilla、CuteFTP • P2P • Peer to Peer • 點對點傳輸 • 工具:eMule、BitTorrent、

  7. 網路程式的應用遊戲 • 線上遊戲 • 市場規模上百億元 • 線上遊戲產業描述

  8. 線上遊戲的分類比較

  9. 網路程式的應用即時訊息 • Facebook • Skype • 微型部落格 • Plurk • Twitter

  10. 網路程式的應用伺服器 • 服務:Service • 伺服器:Server • 網站伺服器:Web Server • 佔用 80 Port • FTP伺服器 • 佔用 21 Port • 電子郵件伺服器 • 佔用 25 Port

  11. 實作的方法 • 開發服務軟體前,需要一個溝通的規範,這個為需求與服務而訂定的標準與規範就是『通訊協定』(Protocol) • 通訊協定就像是日常生活中的「語言」 • 使用現有的協定 • 以 http 傳送文件、命令 • 以 ftp 傳送大檔案 • 創造協定 • 自行定義特有的協定

  12. 創造新協定

  13. TCP 協定應用 • TCP • Transmission Control Protocol • 傳輸 控制 協定 • 連線導向 Connection-Oriented • 保證送達 • 依照先後順序 • 適合需要穩定連線且可靠傳輸機制的用途 • 應用範例 • telnet, www, email, ftp

  14. Java 語言支援 TCP/IP 協定 • 用戶端(client)-Socket 類別 Socket socket = new Socket("ptt.cc", 23); socket.connect(); • 伺服器-ServerSocket類別 //建立ServerSocket物件,並指定傾聽埠為23 ServerSocket server = new ServerSocket(23); //開始等待客戶端連線至23埠 Socket socket = server.accept(); //客戶端連線完成, 取得socket物件 //進行通訊協定實作

  15. UDP 協定應用 • UDP • User Datagram Protocol • 使用者 資料包 協定 • 非連線導向 Connection Less • 不保證送達 • 不保證依照先後順序 • UDP省去連線建立時間、不需要如TCP複雜的封包表頭、提昇傳輸效率 • 應用範例 • DNS, SNMP, DHCP, RIP

  16. Java 語言支援 UDP/IP協定 • Java 的 UDP 使用類別 java.net.DatagramSocket • UDP 用戶端(送出端) • 產生一個UDP封包,並指定目的地主機 IP 與埠號 String s = "ABC"; byte[] data = s.getBytes(); SocketAddressdest = newInetSocketAddress("192.168.1.10", 9996); DatagramPacketpacket = newDatagramPacket(data, data.length, dest); DatagramSocket ds = newDatagramSocket(); ds.send(packet);

  17. Java 語言支援 UDP/IP 協定 • UDP 伺服器(接收端) • 為即將來到的 UDP 封包準備一個 DatagramPacket物件後,使用 DatagramSocket傾聽特定埠號 byte[] buffer = newbyte[10]; DatagramPacketpkt = newDatagramPacket(buffer, 10); DatagramSocket ds = newDatagramSocket(9950); ds.receive(pkt);

  18. UDP 協定應用傳送端 String s = "Hello Java!"; byte[] data = s.getBytes(); SocketAddressdest = new InetSocketAddress("192.168.1.2", 8765); DatagramPacket packet = new DatagramPacket(data, data.length, dest); DatagramSocket sender = new DatagramSocket(); sender.send(packet);

  19. UDP 協定應用接收端 byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); DatagramSocket receiver = new DatagramSocket(8765); receiver.receive(packet);

  20. IPv6 • JAVA 支援 IPv4 也支援 IPv6 • JDK 1.4 以上(含)的版本支援IPv4與IPv6 • IPv4: IP 位址長度為 4 Bytes(32位元) • java.net.preferIPv4Stack : true/false • IPv6: IP 位址長度為 16 Bytes(128位元) • java.net.preferIPv6Addresses : true/false • 開發時使用網域名稱(Domain Name)不用煩惱 IPv6 和 IPv4 的位址差異

  21. IPv6 System.setProperty("java.net.preferIPv6Addresses", "true"); • 在 Java 程式中以系統變數選擇 IPv4 或 IPv6 • java.net.preferIPv4Stack(偏好使用IPv4) • 預設值是 false,表示同時支援 IPv4 與 IPv6, • 若設為 true,表示只使用 IPv4。 • java.net.preferIPv6Addresses(偏好使用IPv6) • 預設值為 false

  22. 網際網路標準 • 網際網路工程任務小組 IETF(Internet Engineering Task Force) • 負責研究與制定網際網路標準的任務組的集合 • 每個工作群組由委員會協助制定或研發新的標準 • RFC • Request For Comment • 徵求評論

  23. 網際網路標準 • 全球資訊網協會 W3C(World Wide Web Consortium) • 解決在不同平台提供網頁服務技術時所衍生出的不相容問題 • 網頁服務標準的制定者 • 制定 HTML、XML、DOM 與 CSS 等 • 推薦標準(Recommendation)

  24. 圖形介面 • 不一定每一支程式都需要漂亮的操作介面 • 網路伺服器程式通常沒有畫面,在背景默默地執行 • LOG:系統紀錄 • 沒有畫面的程式通常產生系統紀錄,以便稽查 • JAVA 視窗程式設計 • AWT • SWING

More Related