Network programming Asst. Prof. Dr. Choopan Rattanapoka

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Advertisements

Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
– Network operating systems and Protocols Choopan Rattanapoka.
เรื่อง แนวทางการเลือกซื้อคอมพิวเตอร์
การสร้างเว็บเพจด้วยภาษา Html
หน่วยการเรียนรู้ที่ 2 เรื่อง ติดตั้งอุปกรณ์เครือข่าย แผนการจัดการเรียนรู้ที่ 7 เรื่องกำหนด โปรโตคอลที่ต้องการใช้ในเครือข่าย ครูปนัดดา กองมนต์ รายวิชา อินเทอร์เน็ตและการสร้างเว็บ.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
เรื่อง เทคโนโลยีบอรดแบนด์ไร้สาย
JSP ติดต่อฐานข้อมูล.
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
Server Object. 2 z ใช้ในการควบคุม และบริหารเว็บเซิร์ฟเวอร์ ซึ่งทำด้วยการเขียนสคริปต์ใน แอปพลิเคชั่น ASP ( โดยเรียกใช้เมธอด หรือกำหนดค่าพรอพเพอร์ตี้ของ.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
FIX COMMON PC PROBLEMS By Missis Jatuporn Surinseng Missis Chamaiporn Sommit.
หน่วยการเรียนรู้ที่ 2 หลักการแก้ปัญหาด้วยคอมพิวเตอร์
รูปร่างของเครือข่ายคอมพิวเตอร์
ซอฟต์แวร์และการเลือกใช้
การรักษาความปลอดภัยข้อมูลขั้นพื้นฐาน
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
หลักการแก้ปัญหา อย่างมีขั้นตอน การแก้ปัญหาด้วย กระบวนการทาง เทคโนโลยี สารสนเทศ หลักการ แก้ปัญหา การใช้หลักการใน การแก้ปัญหา.
C# Communication
เทคโนโลยีพื้นฐานของระบบสารสนเทศ
Case Study.
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
IP-Addressing and Subneting
การใช้ Social Media เพื่อการสื่อสาร
IP-Addressing and Subneting
เครือข่ายคอมพิวเตอร์
การประยุกต์ Logic Gates ภาค 2
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การพัฒนาการใช้งานในระบบเว็บ
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : สื่อกลางส่งข้อมูลและการมัลติเพล็กซ์ (Transmission Media and Multiplexing) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
1.เครื่องทวนสัญญาณ (Repeater)
ระบบโครงข่ายโทรศัพท์
Vernier เวอร์เนียร์ คือเครื่องมือที่ใช้วัดระยะ (distance) หรือ ความยาว (length) ให้ได้ค่าอย่างละเอียด เวอร์เนียร์ต่างจากไม้บรรทัดทั่วๆไป เพราะมี 2 สเกล.
SPEI R & R Studio Program User Manual.
Basic Input Output System
.:ประโยชน์ของอินเทอร์เน็ต
บทที่ 8 การควบคุมโครงการ
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
The Collections Framework
Object-Oriented Programming Paradigm
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
Data storage II Introduction to Computer Science ( )
Method and Encapsulation
การเขียนภาษาจาวาเบื้องต้น
Week 5 C Programming.
Client/Server Application (FilE server)
SMS News Distribute Service
Data storage II Introduction to Computer Science ( )
หน่วยการเรียนรู้ การเขียนโปรแกรมภาษาขั้นพื้นฐาน เรื่อง โครงสร้างพื้นฐาน HTML 5 รหัส รายวิชา ง23102 การงานอาชีพและเทคโนโลยี 6 กลุ่มสาระ การงานอาชีพและเทคโนโลยี
Multimedia และระบบความจริงเสมือน Virtual Reality, VR
พื้นฐานเครือข่ายคอมพิวเตอร์
การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
อินเทอร์เน็ตเบื้องต้น และการออกแบบเว็บไซต์
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
การเติบโตของฟังก์ชัน (Growth of Functions)
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

030523313 - Network programming Asst. Prof. Dr. Choopan Rattanapoka Java Datagram 030523313 - Network programming Asst. Prof. Dr. Choopan Rattanapoka

UDP (User Datagram Protocol) นอกจากการสื่อสารระหว่างเครื่องคอมพิวเตอร์ในเครือข่ายด้วย TCP แล้ว ยังมีอีก protocol ที่ใช้กันคือ UDP UDP จะมี header ที่เล็กกว่า TCP ทำให้ส่งข้อมูลขนาดเล็กได้เร็วกว่า แต่ UDP จะไม่มีการสถาปณาการเชื่อมต่อ และ ไม่รับประกันข้อมูลซึ่ง ข้อมูลที่ถูกส่งอาจจะสูญหายระหว่างทางได้ การส่งข้อมูลผ่าน TCP จะรับประกันการรับข้อมูลตามลำดับ (seq number + ack number) ในการส่ง ในขณะที่ UDP ไม่รับประกัน การรับข้อมูลตามลำดับ

ทำไมถึงยังมีการใช้ UDP ทำไมถึงมี network application ที่ใช้ UDP ซึ่งไม่มีการรับประกันข้อมูลที่ อาจจะสูญหายระหว่างทาง UDP ไม่เหมาะอย่างยิ่งกับงานที่ต้องการความถูกต้องของข้อมูล เช่น FTP(File Transfer Protocol) แต่ UDP เหมาะกับงานที่ต้องการความเร็วในการรับส่งข้อมูล โดยจำเป็นต้อง ได้รับข้อมูลที่ถูกต้อง Real-time audio, video NTP (Network Time Protocol)  ถ้าไม่ได้เวลาที่จะมา synchronize ก็ไม่เป็นไรมาก DNS  ถ้า resolve IP ไม่ได้ก็ติดต่อใหม่ได้ การจัดการกับลำดับข้อมูลที่ต้องการรับสามารถจัดการในชั้นของ application ได้

UDP ใน Java การใช้งาน UDP ใน java จะแบ่งออกเป็น 2 classes สรุปก็คือ DatagramPacket เป็น class ที่ใช้เพื่อ ใส่ข้อมูลที่ต้องการจะส่ง และ ดึงข้อมูลที่ต้องการจะรับ DatagramSocket เป็น class ที่ใช้เพื่อ ส่งและรับ ข้อมูลของ UDP สรุปก็คือ การส่งข้อมูล บรรจุข้อมูลลงใน DatagramPacket และใช้ DatagramSocket เป็นตัวส่ง DatagramPacket ที่มีข้อมูล ไปยังเครื่อง ปลายทาง การรับข้อมูล อ่านข้อมูล DatagramPacket จาก DatagramSocket และ ดึงข้อมูลออกจาก DatagramPacket ที่ได้รับ

ข้อแตกต่างระหว่าง UDP และ TCP ใน Java ข้อ 1 TCP จะมี class : Socket และ ServerSocket UDP จะไม่มี ServerSocket เนื่องจากจะใช้ DatagramSocket ทำงาน เหมือน Socket และ ServerSocket ในตัว ข้อ 2 TCP มี InputStream + OutputStream (Streaming) UDP ไม่มี InputStream + OutputStream จะจัดการข้อมูลในแต่ละ DatagramPacket ข้อ 3 TCP จะติดต่อกันเป็นคู่ Client+Server เมื่อเปิด Socket UDP สามารถจะทำงานระหว่าง host ไหนก็ได้เนื่องจากไม่มีการสถาปณาการ เชื่อมต่อ

ขนาดของข้อมูลที่ส่งผ่าน UDP Source port Destination port Length Checksum Data 15 16 31 ถ้าดูที่ UDP header จะเห็นว่า Length ใน header มีขนาด 16 บิต ความยาวนี้คือความยาวทั้ง datagram ซึ่งหมายความว่า Data + UDP header แล้ว จะ มีขนาดมากสุดคือ 65536 ดังนั้น UDP header มีขนาด 64 บิต ทำให้ ข้อมูลที่ UDP จะส่งได้จริงต่อ datagram จะต้องไม่เกิน 65742 บิต (ประมาณ 8 kB) แต่อย่างไรก็ตาม UDP จะทำงานผ่าน IP ซึ่งมีการกำจัดขนาดของข้อมูลแค่ 65536 บิต รวม IP header ด้วย ดังนั้นพยายามอย่าให้ ข้อมูลที่ส่งผ่าน UDP เกิน 8kB แต่ในการใช้งานส่วนใหญ่ application จะพยายามกันไม่รับ UDP datagram ที่มีขนาด ใหญ่กว่า 576 bytes รวม data + UDP header

Class : DatagramPacket DatagramPacket มี contructor ที่สำคัญแบ่งออกเป็น 2 ส่วนคือ Contructor สำหรับรับข้อมูล public DatagramPacket(byte[] buffer, int length) public DatagramPacket(byte[] buffer, int offset, int length) Contructor สำหรับส่งข้อมูล public DatagramPacket(byte[] data, int length, Inetaddress destination, int port) Public DatagramPacket(byte[] data, int offset, int length, Inetaddress destination, int port)

Get Method ใน Class DatagramPacket public InetAddress getAddress() ดึงค่า InetAddress ที่เป็นเครื่องปลายทาง public int getPort() ดึงค่าหมายเลข port ของเครื่องปลายทาง public int getLength() คืนจำนวน byte ของข้อมูลใน datagram public int getOffset() คืนค่า offset ที่เป็นจุดเริ่มต้นของข้อมูล public byte[] getData() ดึงข้อมูลออกจาก datagrampacket ปกติแล้วควรจะแปลงข้อมูลให้อยู่ในรูปที่นำไปใช้ได้เลย เช่น (กำหนด dp เป็น object ของ DatagramPacket) String s = new String(dp.getData(), “ASCII”); InputStream in = new ByteArrayInputStream(dp.getData(), dp.getOffset(), dp.getLength());

ตัวอย่าง 1

Set Method ใน Class DatagramPacket ปกติการสร้าง DatagramPacket ด้วย constructor เพียงพออยู่ แล้ว ยกเว้นในกรณีที่ต้องการแก้ไขค่าโดยไม่สร้าง object ใหม่เพื่อ ความเร็วในการใช้งาน มีเมธอดสำคัญอยู่ 4 เมธอด public void setData(byte[] data) public void setData(byte[] data, int offset, int length) สำหรับต้องการเปลี่ยนค่า data ที่ต้องการจะส่ง public void setAddress(InetAddress remote) public void setPort(int port) public void setLength(int length)

Class : DatagramSocket Socket ใน datagram จะถูกผูกอยู่กับ port ซึ่งจะใช้ทั้งรับและส่ง ข้อมูล ในกรณีที่เขียน client ไม่จำเป็นจะต้องระบุ port สามารถปล่อยให้ระบบหา port ที่ว่างให้เอง (anonymous port) ในกรณีของ Server จะต้องกำหนด port เพื่อให้ Client สามารถติดต่อเข้า มาได้ ดังนั้นเมื่อต้องการเขียนโปรแกรมที่เป็น Server จะต้องเลือกใช้ constructor ที่สามารถระบุหมายเลข port ได้

Constructor : DatagramSocket ใน DatagramSocket มี constructor อยู่ 3 แบบ ซึ่งจะถูกเรียกใช้ใน เหตุการณ์ที่ต่างกัน เปิด socket แบบ anonymous port public DatagramSocket() throws SocketException เปิด socket บน port ที่เจาะจงไว้บนทุก network interface public DatagramSocket(int port) throws SocketException เปิด socket บน port ที่เจาะจงไว้บน network interface ที่เจาะจง public DatagramSocket(int port, InetAddress address) throws SocketException Port ที่กล่าวถึงคือ local port หรือเครื่องตัวเอง เตือน : remote IP, remote port จะตั้งค่าใน DatagramPacket

การส่งและรับข้อมูล datagram เป้าหมายหลักของ DatagramSocket คือ การส่งและรับข้อมูล public void send(DatagramPacket dp) ใช้สำหรับส่งข้อมูล datagram ไปยังเครื่องปลายทาง public void receive(DatagramPacket dp) ใช้สำหรับรับข้อมูล datagram จากเครื่องปลายทาง การรอข้อมูลจะ block ที่คำสั่งนี้จนกว่าจะได้รับข้อมูล public void close() ใช้สำหรับคืน port ที่ใช้งาน public int getLocalPort() คืนค่าหมายเลข port ซึ่งทำให้รู้ว่าระบบจัดสรร port หมายเลขอะไรมาให้เรา

Example : Echo Server/ Echo Client

Example : EchoClient

Example : EchoServer

Class : Date ในภาษา Java สามารถดึงเวลาของเครื่องคอมพิวเตอร์ออกมาได้ โดยใช้ Class ที่ชื่อว่า Date Date มี constructor หลายแบบแต่ถ้าต้องการเวลาปัจจุบันสามารถใช้ constructor ที่ง่ายที่สุดคือ public Date( ) Date now = new Date(); เมธอดใน Class Date สามารถดึงค่า วัน เดือน ปี ชั่วโมง นาที ได้ แต่ถ้า ต้องการทั้งหมด สามารถใช้เมธอด toString(); String date = now.toString();

ตัวอย่าง