Network programming Asst. Prof. Dr. Choopan Rattanapoka

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
และเครือข่ายคอมพิวเตอร์
Advertisements

โครงสร้างโปรแกรมภาษา JAVA
Chapter 11 Ajax.
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Ajax อ.วชิระ หล่อประดิษฐ์ ระบบสารสนเทศทางคอมพิวเตอร์
อาจารย์ที่ปรึกษา ผศ.กานดา สายแก้ว อาจารย์ผู้ร่วมประเมิน
คำสั่ง while และ คำสั่ง do..while
Chapter IV : สร้างการติดต่อ
สถาปัตยกรรม ActiveX Data Object (ADO)
Object and classes.
Function.
Location object Form object
การพัฒนาการใช้งานในระบบเว็บ
วิชา การเขียนโปรแกรมบนเว็บ (Web-based Programming)
HTTP Client-Server.
Firewall IPTABLES.
Selected Topics in IT (Java)
Transport Layer.
การควบคุมทิศทางการทำงานของโปรแกรม
Introduction TO Network Programming
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
คลาสและวัตถุ (2) (Class & Object)
บทที่ 1 หลักการเขียนโปรแกรมเชิงวัตถุ
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (4) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
RADIUS & TACACS.
Inheritance การสืบทอดคลาส
รู้จักและใช้งาน Applet
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
HTML, PHP.
สนุกกับ Activity ใน Android
Method of Class อ.สุพจน์ สิงหัษฐิต
Bupa active : Member log in. ในหน้าแรก ระบบจะแสดงแถบต่าง ๆ ที่ เกี่ยวข้องกับข้อมูลของท่านโดยสามารถ เลือกตรวจสอบข้อมูลได้ตามต้องการ ทั้งนี้ ในตัวอย่างเราจะเลือก.
การติดต่อสื่อสารผ่านอินเตอร์เน็ต
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
ฟังก์ชัน.
Object-Oriented Programming
บทที่ 3 Class and Object (2).
เกียรติพงษ์ ยอดเยี่ยมแกร
หลักการเขียนโปรแกรม ( )
คำสั่งทำซ้ำ for คำสั่ง for เป็นคำสั่งทำซ้ำในลักษณะ Definite loop คือทราบจำนวนรอบที่แน่นอนในการทำงาน ซึ่งจะใช้ตัวแปร 1 ตัวในการนับจำนวนรอบว่าครบตามกำหนดหรือไม่
Introduction to PHP, MySQL – Special Problem (Database)
ระบบฐานข้อมูลการดำเนินงานกิจกรรมสาธารณสุข
HTTP (Hyper Text Transfer Protocol )
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
Java Network Programming 1
จดหมายอิเล็กทรอนิกส์ ( )
NETWORK SERVICE NTP + SQUID
หลักการเขียนโปรแกรมเบื้องต้น
ด. ช. พงศกร ภูมิ โคกรักษ์ ม.2/5 เลขที่ 32 โรงเรียนจักรคำ คณาทร.
แนะนำการเขียนโปรแกรมภาษา C Introduction to C Programming Language
Virtualization and CentOS Installation
การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์
คำศัพท์ระบบอินเตอร์เน็ต
ชื่อ นางสาวชื่นฤดี ไชยวงค์ โปรแกรมวิทยาการคอมพิวเตอร์ ชั้นปีที่ 3 รหัส
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การทำซ้ำ (for).
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Client/Server Application (FilE server)
ใบสำเนางานนำเสนอ:

357335 - Network programming Asst. Prof. Dr. Choopan Rattanapoka Java ServerSocket 357335 - Network programming Asst. Prof. Dr. Choopan Rattanapoka

ServerSocket server = new ServerSocket(หมายเลข port); Java ServerSocket Server Server มีหน้าที่รอการติดต่อจาก Client ใน port ที่ตัวเองจะให้บริการ ใน Java จะสามารถทำได้โดยการสร้าง Object ของ ServerSocket ตัวอย่าง : ServerSocket server = new ServerSocket(หมายเลข port);

โปรแกรมจะค้างที่บรรทัดนี้จนกว่าจะมี Client มาร้องขอการเชื่อมต่อ Client and Server Client Server 192.168.1.1 ServerSocket server = new ServerSocket (2000); Socket s = new Socket (“192.168.1.1”, 2000); ฝ่าย Server จำเป็นจะต้องมี Socket เพื่อติดต่อกับ Client สามารถทำได้โดย Socket client = server.accept(); โปรแกรมจะค้างที่บรรทัดนี้จนกว่าจะมี Client มาร้องขอการเชื่อมต่อ

ตัวอย่างโปรแกรมของฝั่ง server เอา socket ออกมาใช้งาน วน loop รอรับ การติดต่อจาก client ปิดเมื่อใช้งานเรียบร้อย

การเขียน server/client การเขียน server และ client ด้วยตัวเองนั้นจะต้องออกแบบ protocol คือการออกแบบช่วงไหนจะรับข้อมูล ช่วงไหนจะส่งข้อมูล โดย server และ client จะต้องทำหน้าที่สลับกัน ส่ง รับ ส่ง รับ Client Server

ตัวอย่าง 1: โปรแกรม server/client ถ้าต้องการเขียนโปรแกรมให้ Server ให้บริการที่ port หมายเลข 10000 Client ติดต่อกับ Server พร้อมทั้งส่งคำว่า Hello เมื่อ Server ได้รับคำว่า Hello, server จะตอบคำว่า Welcome จากนั้นปิดการเชื่อมต่อ ส่ง Hello รับ Welcome ส่ง รับ Client Server

โปรแกรม Client ส่ง Hello รับ

โปรแกรม Server รับ Welcome ส่ง

ตัวอย่าง 2 : โปรแกรม login, password เขียนโปรแกรมให้ server เป็นตัวตรวจสอบ login และ password อย่างง่าย โดยมีการทำงานดังต่อไปนี้ Server ให้บริการที่ port 20000 Client จะเชื่อมต่อไปยัง Server จากนั้นจะส่ง Login (มาจาก parameter ตัวที่ 1) Password (มาจาก parameter ตัวที่ 2) Server ตรวจสอบว่า login = admin และ password = admin หรือไม่ ถ้าใช่ให้ส่งข้อความ OK กลับไปยัง client ถ้าไม่ใช่ให้ส่งข้อความ NO กลับไปยัง client

โปรแกรม Client

โปรแกรม Server

ตัวอย่าง 3 : โปรแกรมที่ server ใช้เวลาทำงานนาน เขียนโปรแกรมให้ server โดยกำหนดให้งานที่ server ให้บริการต่อ client ใช้เวลานานมาก Server ให้บริการที่ port หมายเลข 30000 Client ติดต่อไปยังส่งเลข 1 ค่า (วินาที) [มาจาก args[0]] Server จะหลับรอเป็นจำนวนวินาทีที่ Client ส่งเข้ามา จากนั้นส่งคำว่า OK คืนให้กับ Client

โปรแกรม Client

โปรแกรม Server

ผลการรัน ถ้าสังเกตุผลการรันของโปรแกรมตัวอย่างที่ 3 จะเห็นว่า Server สามารถให้บริการ Client ได้ทีละ 1 ตัวเท่านั้น Server จะให้บริการ Client ตัวถัดไปต่อเมื่อ Server ได้ให้บริการกับ Client เสร็จสิ้นก่อน ซึ่งการขึ้นจากเมธอด accept ที่จะถูกเรียกก็ต่อเมื่อ server ทำงานต่างๆ ใน loop while เรียบร้อยก่อน ปัญหาจึงทำให้ถ้า server ให้บริการบางอย่างที่ต้องใช้เวลาในการทำงานนาน มาก server จะไม่สามารถให้บริการกับ client อื่นได้เลยในช่วงเวลานั้น วิธีแก้ไข เขียนให้ server รองรับการทำงานแบบ multi-thread

การเขียน Server แบบ multi-thread

แก้ไขตัวอย่างที่ 3 ให้เป็นแบบ multi-thread 1 2 Code ของ client ไม่จำเป็นต้องมีการเปลี่ยนแปลงใดๆ ทั้งสิ้น

Java HashMap HashMap อยู่ใน package java.util.*; HashMap มีการทำงานในลักษณะของ <key, value> คือมี key เหมือนกับเป็น ID โดยแต่ละ key จะมีค่า (value) ของ key นั้นๆ hashMap จะมีการค้นหาข้อมูลที่รวดเร็ว O(1) เมธอดที่สำคัญของ Class HashMap มีอยู่ 2 เมธอดคือ put(Object key, Object value) เป็นการเก็บข้อมูล <key, value> ลงในตาราง hash Object get(Object key) เป็นการดึงค่า value ออกจากตาราง hash โดยใช้ key เป็นตัวค้นหา

ตัวอย่าง : การใช้งาน HashMap