190 likes | 291 Views
課程參與度之評估方式. 上課時必須專心聽講,跟上進度,參與討論 扣 分項目 玩線上遊戲一次扣 1 分 玩手機一次扣 1 分 睡覺一次扣 1 分 聊天一次扣 1 分 無法回答老師提出的問題一次扣 1 分 加分項目 主動回答老師的問題一次加 2 分 找出老師程式中的錯誤一次加 1 分 修正老師程式中的錯誤一次加 4 分. 網路程式設計 CH01 網路程式設計導論. 鄧姚文. 大綱. 網路程式的應用 實 作的方法 TCP 通訊協定應用 UDP 通訊協定應用 IPv6 網際網路標準 圖形介面. 前言. 以 JAVA 開發網路程式的優點
E N D
課程參與度之評估方式 • 上課時必須專心聽講,跟上進度,參與討論 • 扣分項目 • 玩線上遊戲一次扣1分 • 玩手機一次扣1分 • 睡覺一次扣1分 • 聊天一次扣1分 • 無法回答老師提出的問題一次扣1分 • 加分項目 • 主動回答老師的問題一次加2分 • 找出老師程式中的錯誤一次加1分 • 修正老師程式中的錯誤一次加4分
大綱 網路程式的應用 實作的方法 TCP通訊協定應用 UDP通訊協定應用 IPv6 網際網路標準 圖形介面
前言 • 以 JAVA 開發網路程式的優點 • JAVA 提供易用的網路程式介面套件 • JAVA 具備多執行緒功能,可以讓通訊過程更順暢 • JAVA 跨平台 • 缺點 • JAVA 不支援低階的網路協定 • 不支援 ICMP • 受到安全機制的限制
網路程式的應用 • 網路協定 Network Protocol • 通訊協定 Protocol • TCP/IP 是目前使用最廣泛的網路協定 • 基於 TCP/IP 的應用 • WWW、FTP、Email、MSN、P2P、連線遊戲、網路電話、網路電視 • IPv4 的 IP 位址已經發完 • IPv6 還不流行 • 為什麼不用 IPv6 ?
網路程式的應用傳輸資料 • FTP • File Transfer Protocol • 檔案傳輸協定 • 工具:Filezilla、CuteFTP • P2P • Peer to Peer • 點對點傳輸 • 工具:eMule、BitTorrent、
網路程式的應用遊戲 • 線上遊戲 • 市場規模上百億元 • 線上遊戲產業描述
網路程式的應用即時訊息 • MSN • Skype • 微型部落格 • Plurk • Twitter
網路程式的應用伺服器 • 服務:Service • 伺服器:Server • 網站伺服器:Web Server • 佔用 80 Port • FTP伺服器 • 佔用 21 Port • 電子郵件伺服器 • 佔用 25 Port
實作的方法 • 使用現有的協定 • 以 http 傳送文件、命令 • 以 ftp 傳送大檔案 • 創造協定 • 自行定義特有的協定 • 線上遊戲 • 各地分公司之間交換資料 • 券商和客戶之間傳送訊息
TCP 協定應用 • TCP • Transmission Control Protocol • 傳輸 控制 協定 • 連線導向 Connection-Oriented • 保證送達 • 依照先後順序 • 應用範例 • telnet, www, email, ftp
TCP 協定應用Socket Socket socket = new Socket("ptt.cc", 23); socket.connect(); ServerSocket server = new ServerSocket(23); Socket socket = server.accept(); Client Socket Server Socket
UDP 協定應用 • UDP • User Datagram Protocol • 使用者 資料包 協定 • 非連線導向 Connection Less • 不保證送達 • 不保證依照先後順序 • 應用範例 • DNS, SNMP, DHCP, RIP
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);
UDP 協定應用接收端 byte[] buffer = new byte[1024]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); DatagramSocket receiver = new DatagramSocket(8765); receiver.receive(packet);
IPv6 • JAVA 支援 IPv4 也支援 IPv6 • IPv4: IP 位址長度為 4 Bytes • java.net.preferIPv4Stack : true/false • IPv6: IP 位址長度為 16 Bytes • java.net.preferIPv6Addresses : true/false • System.setProperty("java.net.preferIPv6Addresses", "true");
網際網路標準 • IETF 網際網路工程任務小組 • Internet Engineering Task Force • 目標:解決問題 • RFC • Request For Comment • 徵求評論 • W3C 全球資訊網協會 • World Wide Web Consortium • HTML, XML, DOM, CSS
圖形介面 • 不一定每一支程式都需要漂亮的操作介面 • 網路伺服器程式通常沒有畫面,在背景默默地執行 • LOG:系統紀錄 • 沒有畫面的程式通常產生系統紀錄,以便稽查 • JAVA 視窗程式設計 • AWT • SWING