2019/5/20 JAVA Socket(UDP).

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

網路程式設計 (Network Programming)
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
《网络基础与Internet应用》.
计算机网络(第 6 版) 第 6 章 应用层 青岛理工大学通信与电子工程学院.
第 12 章 UDP 與 TCP.
第一章 概 述.
Java程序设计教程 第一讲 Java概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
实训十四、IE浏览器的基本应用.
Chapter 12 UDP 與 TCP.
Original by 黄嘉輝 Modification by 游象甫
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
Foundations of Computer Science Chapter 6 電腦網路
计算机系统安全 第10章 常用攻击手段.
第二章 JAVA语言基础.
Socket.
基于WinSock的邮件系统 1 设计目标: 1.1 SMTP发送邮件服务器(c语言) 1.2 POP3接受邮件服务器(c语言)
网络地址转换(NAT) 及其实现.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
Core Switch 設定 Port的開啟與關閉 Virtual LAN建立 將Port指定到Virtual LAN
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
程式設計實作.
第 12 章 UDP 與 TCP.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
Java语言程序设计 清华大学出版社 第9章 网络通信.
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
TCP協定 (傳輸層).
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
Socket Programming in C
第五章 網際網路 5-1 網際網路的歷史沿革 5-2 網際網路基本運作原理 5-3 連線媒介與連線上網 5-4 網際網路上的熱門應用
Socket 基本觀念.
Socket () and TCP client-server
網路服務 家庭和小型企業網路 – 第六章.
第二章 Linux基本指令與工具操作 LINUX 按圖施工手冊.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
C#程序设计 c# programming 网络编程 C#程序设计课程组.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
第 2 章 TCP / IP 簡介.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
西南科技大学网络教育系列课程 高级语程序设计(Java) 第十一章 Java 中的网络编程.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
第十讲 TCP协议 协议概述 报文段格式 差错控制 流控和拥塞控制 TCP连接管理 TCP性能问题 TCP软件设计 2018/12/7
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
第4章 OSI傳輸層.
Echo Server/Client Speaker:Fang.
第5讲 网络层 本讲目的: 概述: 理解网络层服务原理: 因特网的实现实例 网络层的服务 路由选择原理 分层的路由选择 IP协议
Chapter 11:Java网络编程 授课教师:赵小敏 浙江工业大学 软件学院
第 12 章 UDP 與 TCP 著作權所有 © 旗標出版股份有限公司.
第一章 Java语言概述.
第十三章 TCP/IP 與 Internet 網路連結技術
第一單元 建立java 程式.
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
Web Server 王宏瑾.
Westmont College 网络应用软件 第一讲 (客户-服务器 概念, 协议端口的使用, 套接字API)
Network Application Programming(3rd Edition)
Advister: Quincy Wu Speaker: Chenglin Tsai Date:3/26
3.1 通訊協定 3.2 開放系統參考模式(OSI) 3.3 公眾數據網路 3.4 TCP/IP通訊協定
SOCKET( ).
2019/5/3 JAVA Socket(UDP).
龍老師我不會Debug QQ.
第10讲 Web服务.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Internet课程设计 教师:陈 妍 朱海萍 西安交通大学计算机系
判斷(選擇性敘述) if if else else if 條件運算子.
第十二章 Java网络编程 1.URL编程 2.Socket网络编程 3.Datagram网络编程.
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

2019/5/20 JAVA Socket(UDP)

TCP和UDP的比較 特徵/協定 連線導向(TCP) 非連線導向(UDP) 資料傳送服務的品質 2019/5/20 特徵/協定 連線導向(TCP) 非連線導向(UDP) 資料傳送服務的品質 保證遞送,有錯誤的檢查,保證資料到達的順序,提供流量控制與網路故障通知 資料有可能遺失.重複.延遲或是抵達順序錯誤 Socket程式的呼叫 等候連線與資料的接受是阻絕呼叫(Blocking Call) 資料的接收是阻絕呼叫(Blocking Call) 資料傳送的特徵 資料已連續的方式收送,沒有分隔,接收必須做後處理 資料以傳送所有的大小為單位,接收端可以直接當作獨立的訊息處理 連線成本 連線的成本高 連線的成本低 Blocking Call : 在程式執行中遇到Blocking Call,必須等到Blocking原 因移除後才能繼續執行 TCP: UDP:

Port (通訊埠) 通訊協定通常是以port來區隔Internet各個應用 服務的. 通常有16bits代表 216=65536種 2019/5/20 通訊協定通常是以port來區隔Internet各個應用 服務的. 通常有16bits代表 216=65536種 編號1~1023是保留號(公認) 所以programming時要注意 可用範圍 : 1024~65535

各種協定的Port (通訊埠) 協定 Port number Transport 協定 DHCP 2019/5/20 協定 Port number Transport 協定 DHCP 67(server) / 68(client) UDP DNS 53 TCP/UDP FTP 21(control) / 20(data) TCP HTTP 80 SMTP 25 Telnet 23 POP3 110

Socket 2019/5/20 Socket步驟如下: 建立Client Socket,在建立時需指定欲連結 Server的主機名稱或IP位址與Internet服務的 port 傳送特定資訊或指令至Server 接收Server回傳的執行結果或錯誤訊息,並以特 定格式顯示,例如:HTTP通訊協定會HTML格式 顯示 當Client不需Server的處理時,便關閉Socket通 訊連結

Socket 2019/5/20 Application Socket API TCP UDP Network

Socket Socket在網路應用程式開發上,大致有下列兩大 類: Stream Socket 2019/5/20 Socket在網路應用程式開發上,大致有下列兩大 類: Stream Socket (Connection-Oriented Protocol)TCP Datagram Socket (connectionless Protocol)UDP

Socket API-- Server 所提供的Server端的API函式: Server BSD Socket 說明 socket 2019/5/20 所提供的Server端的API函式: Server BSD Socket 說明 socket 建立socket bind 設定socket所使用的local端IP位址與通訊埠 listen 設定socket等候(listen)Client端連結請求(connection request) accept 接受來自Client端的連結請求,並且建立socket連結 recv read (TCP)接收來自Client端所傳來的資料 recvfrom (UDP)接收來自Client端所傳來的資料 send write (TCP)傳送資料至Client端 sendto (UDP)傳送資料至Client端 closesocket 關閉通訊連結及socket,並且釋放系統資源 shutdown 關閉socket的傳送與接收的功能

Socket API-- Client 所提供的Client端的API函式: Client BSD Socket 說明 socket 2019/5/20 所提供的Client端的API函式: Client BSD Socket 說明 socket 建立socket connect 建立與Server端的socket連線 recv read (TCP)接收來自Server端所傳來的資料 recvfrom (UDP)接收來自Server端所傳來的資料 send write (TCP)傳送資料至Server端 sendto (UDP)傳送資料至Server端 closesocket 關閉通訊連結及socket,並且釋放系統資源 shutdown 關閉socket的傳送與接收的功能

UDP Socket Datagram Socket程式開發流程 Socket() Bind() Recvfrom() 2019/5/20 Datagram Socket程式開發流程 Socket() Bind() Closesocket() Sendto() Recvfrom() ( Blocking Call )

Java Socket API Java.net中支援Datagram Socket (UDP) 應用程式相關的API: Java API 2019/5/20 Java.net中支援Datagram Socket (UDP) 應用程式相關的API: Java API 說明 Java.net.DatagramSocket 建立Datagram socket Java.net.DatagramPacket 建立Datagram packet(資料封包) Receive (DatagramSocket) 接收Datagram packet(資料封包) Send (DatagramSocket) 傳送Datagram packet(資料封包) Close 關閉Datagram socket Java API : http://nothing.tw/JDK_API_1_6/overview-summary.html

JAVA UDP Socket Java Datagram Socket DatagramSocket DatagramPacket 2019/5/20 Java Datagram Socket DatagramSocket DatagramPacket Close send receive DatagramSocket DatagramPacket Close ( Blocking Call)

使用軟體工具--Eclipse 2019/5/20 網址 : http://www.eclipse.org/downloads/

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

使用軟體工具--Eclipse 2019/5/20

範例程式—UDP Server public class Server { 2019/5/20 public class Server { public static void main(String args[]) throws Exception byte buffer[]=new byte[10]; //buffer是10byte的陣列 String msg; int portNo=5555; //設port System.out.println("Server端開始接受連線請求!"); //print出的文字訊息 for (;;) { DatagramPacket packet = new DatagramPacket(buffer,buffer.length); //建立Datagram packet資料封包,限制packet值和長度大小 DatagramSocket socket=new DatagramSocket(portNo); //建立socket 需要設port socket.receive(packet); //接收封包 msg=new String(buffer,0,packet.getLength()); //將訊息轉為字串 System.out.println("收到下面的訊息 : " + msg); //print出的文字訊息 socket.close(); //關閉socket

範例程式—UDP Client 2019/5/20 public static void main(String args[]) throws Exception { int portNo =5555; //設port System.out.print("Please input the IP address of destination :"); //print出的文字訊息 BufferedReader uip= new BufferedReader(new InputStreamReader(System.in)); //輸入到buffer的字串存到UIP中,並讀出UIP中buffer的內容 String ServerIP=uip.readLine(); //將UIP內容讀到ServerIP InetAddress addr=InetAddress.getByName(ServerIP); //抓出ServerIP位址 while (true) { // 一直回傳新訊息 System.out.print("輸入送出的訊息 :"); String msg=uip.readLine(); //讀UIP中的訊息 int oLength=msg.length(); //將訊息長度大小放到oLength byte buffer[]=new byte[oLength]; buffer=msg.getBytes(); DatagramPacket packet= new DatagramPacket(buffer,oLength,addr,portNo); //訊息封包(值,大小,位址,port) DatagramSocket socket=new DatagramSocket(); //建立socket socket.send(packet); //送出packet封包訊息 socket.close(); //關閉socket

範例程式—執行結果 2019/5/20 UDP Server UDP Client