Network programming Asst. Prof. Dr. Choopan Rattanapoka

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Lab Part Nattee Niparnan
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
Network programming Asst. Prof. Dr. Choopan Rattanapoka
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
Javascripts.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
PHP for Web Programming
บทที่ 3 Class and Object (2).
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
Java Network Programming 1
NETWORK SERVICE NTP + SQUID
Risk Management Asst.Prof. Dr.Ravi. การระบุมูลค่าความเสี่ยง กรณีการแจกแจงแบบปกติ (Normal Distribution) ความเสี่ยงที่ Pr (r
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
ความเสี่ยง Risk. How To Hack ?  วิธีการ Hack คือ ไปอ่านค่า config อีก Web หนึ่ง ซึ่งอยู่ใน host เดียวกัน โดยตัว Host Server ของอาจารย์ ไม่ได้ทำระบบป้องกันในการเข้าถึง.
C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1.
ระบบยื่นชำระภาษีออนไลน์ (น้ำมัน โรงแรม ยาสูบ). ประเภทรายได้ภาษีท้องถิ่นจัดเก็บเอง ประเภท รายได้ อบจ. เทศ บาล อบต. เมือง พัทยา กทม. 1.1 ภาษี โรงเรือนที่ดิน.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
C# Communication
ศูนย์ข้อมูลกลางเพื่อบริหารจัดเก็บและใช้ประโยชน์
Agenda Training Admin User
O365 คืออะไร ? Office 365 คือบริการการใช้งานโปรแกรม Office บนเครื่องคอมพิวเตอร์ และมือถือ และบริการพื้นที่ ออนไลน์ฟรีในการเก็บข้อมูล OneDrive การสื่อสารผ่าน.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Microsoft Visual Basic 2010
Basic Java Programming
บทที่ 5 ระบบปฏิบัติการเครือข่าย
HTML (2) – Web Programming and Web Database
PHP (1) - variables - math operations - form method
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
PHP (2) - condition - loop
Client/Server Computing and Web Technologies (2-0-4)
Object-Oriented Programming Paradigm
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
SQL – Web Programming and Web Database
ด้านสุขาภิบาลอาหารและน้ำ
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
Introduction TO Web PRogramming
ระบบจัดเก็บและบันทึกข้อมูลทะเบียนพาณิชย์
สัมมนาเชิงปฏิบัติการ เรื่อง การทบทวนและซักซ้อมการปฏิบัติงานใน ระบบจ่ายตรงเงินเดือนและค่าจ้างประจำ ระหว่าง ๒ – ๓ มี.ค. ๖๐ ณ ศูนย์ศึกษายุทธศาสตร์กองทัพไทย.
E-Payment ภาครัฐ หลักเกณฑ์และวิธีปฏิบัติในการจ่ายเงิน การรับเงิน และการนำเงินส่งคลังของส่วนราชการ ผ่านระบบ KTB Corporate Online เริ่มดำเนินการ 1 ตุลาคม.
การพัฒนาศูนย์พึ่งได้ (OSCC)
เครือข่ายคอมพิวเตอร์ ขั้นสูง
การดำเนินงาน OSCC ศูนย์ช่วยเหลือสังคม
CPE 491 Proposal (สอบเสนอหัวข้อเพื่อทำ Project)
การบันทึกข้อมูล Social Risk ใน HDC
Starting JAVA : JAVA PROGRAMMING (การ โปรแกรมภาษาจาวา) มัลลิกา เกลี้ยงเคล้า | SC1419.
รายงานการระบาดศัตรูพืช
Client/Server Application (FilE server)
XML, JSON และ AJAX – Web Programming and Web Database
วิธีเข้าระบบทดสอบจริยธรรมตำรวจ
การให้บริการไฟล์ File Transfer Protocol
การเขียนโปรแกรมคอมพิวเตอร์ (Computer Programming)
ประกาศกรมสวัสดิการและคุ้มครองแรงงาน เรื่อง กำหนดแบบและวิธีการรายงานผลการฝึกซ้อมดับเพลิงและฝึกซ้อมอพยพหนีไฟทางสื่ออิเล็กทรอนิกส์ วันที่ประกาศในราชกิจจานุเบกษา
การสมัครเข้าใช้งานโปรแกรม (การขอ Username/ Password)
เทคนิคการตรวจสอบกิจการ
ระบบรักษาความปลอดภัย FIREWALL กำแพงไฟ
Welcome.. ข่าวประชาสัมพันธ์ กองคลัง สาระน่ารู้
Distributed Computers and Web Technologies (3-0-6)
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
Welcome.. สาระน่ารู้ ข่าวประชาสัมพันธ์ กองคลัง
องค์ประกอบของคอมพิวเตอร์ และภาษาซี
ใบสำเนางานนำเสนอ:

030523313 - Network programming Asst. Prof. Dr. Choopan Rattanapoka Java ServerSocket 030523313 - 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 ไม่จำเป็นต้องมีการเปลี่ยนแปลงใดๆ ทั้งสิ้น

ปรับเปลี่ยนให้เป็น ThreadPool ExecutorService es = Executors.newFixedThreadPool(10);

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 เป็นตัวค้นหา คืนค่า null ถ้าไม่มี key ใน HashMap

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

ตรวจสอบปัญหาของการใช้งาน HashMap

แก้ปัญหาต้องระบุประเภทของข้อมูล