หน้าแรก
 การบ้าน
  C/C++ new
  Java new
 Sourcecode.TV
  Android
  Blackberry
  C/C++
  Java
  Linux
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  DoodeeHosting
  รับออกแบบ พัฒนาเว็บไซต์
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะครับ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒนาด้วย HTML5 ...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะคับ
งานเล...

2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลองศึกษาเองได...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก่อนได้นะคับ...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต่อได้ครับ 08...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรือบริษัท
ส...

2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  รับ สอน matlab เขียน matlab...
2017-06-03 16:27:23
  เฉพาะทางขนาดนี้ คงต้องดูหาข...
2017-05-25 16:18:08
  โห เครื่องรุ่นไหนครับ os รุ...
2017-05-25 16:12:47
  ถ้าเขียน php ก็ใช้ curl ส่...
2017-04-20 01:04:20
  เขียนโค้ดไม่เป็น เอาโค้ดไป ...
2017-03-27 12:50:54
  คือสงสัยว่าทำไม ต้องอัพเดทด...
2017-03-27 12:37:20
  ทดสอบการตอบ...
2017-02-22 13:10:24
  ลองอีกวิธีเขียน recursive f...
2017-02-14 13:11:03
  อยากได้ โค้ดระบบห้องสมุดมาก...
2017-01-30 11:45:28
  ทำ for-loop ซ้อนกัน
โดย...

2017-01-28 16:00:12
  Homework comment
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:40:46
  ทำเอง งง เอง กะลังทำใหม่ค่ะ ^^...
2017-04-18 18:37:54
  ประเด็นแรก flowchart มันไม่มีภ...
2017-04-18 17:43:33
  อยากได้ flowchart ค่ะ เป็นภาษา...
2017-04-18 16:25:29
  kungking คำถามคืออะไรครับ ?...
2017-03-18 23:28:36
  จงเขียนโปรแกรมแสดงผลรวมของตัวเ...
2017-03-06 10:56:25
  ก็โค้ดทำงานคล้ายๆแบบนี้หละ แต่...
2016-09-06 01:00:12
  ผมอยากทราบว่าโค้ดนับถอยหลังเป็...
2016-09-05 09:31:27
  ได้โค้ดแล้ว ลองศึกษาแล้วเขียนผ...
2016-04-22 00:47:49
  ขอแผนผังของโปรแกรมนับตัวอักษรภ...
2016-04-21 19:24:55
  Article comment
  น่าจะได้ครับ ไม่เคยลอง
กล่...

2017-07-11 09:59:35
  สามารถใช้ต่อกับ anycast ได้ไหม...
2017-07-05 10:12:35
  ครับ คุณ "ติด" แล้วลองนึกต่อว่...
2016-06-18 15:21:09
  vs2008 c# ครับ ขอบคุณครับ...
2016-06-17 14:39:30
  ผมใช้ vs c# ทำตามทุขั้นตอนแต่ต...
2016-06-17 14:37:44
  ต้องวิเคราะห์ครับ "ว่าจริงๆ ส่...
2016-03-12 23:36:05
  ผมส่งข้อความในวง LAN ได้เฉพาะค...
2016-03-12 18:25:42
  โปรแกรม Terminal บน Mac ก็เป็น...
2016-02-16 11:02:01
  โปรแกรม Terminal คืออะไรหรอคะ...
2016-02-16 05:58:21
  ไปตั้ง โครงการไว้เลยครับ ที่
2016-01-25 13:29:55
  9Mcode comment
  อยากได้...
2014-02-21 08:52:19

Link Exchange

อัตราค่าโฆษณา
Statistics of Sourcecode in Thailand
 
 eMbedded Visual Basic Tutorial  

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 eMbedded Visual Basic
 
 

บทที่ 6 โปรแกรมเรียกดูเอกสาร HTML ผ่าน Winsock

 

ตัวอย่างโปรแกรมนี้ จะเป็นการติดต่อขอข้อมูลจากเว็บไซด์ โดยทำการร้องขอ เอกสาร HTML จากเว็บไซด์ ให้จัดส่งข้อมูลมายังโปรแกรม ผ่านการติดต่อสื่อสาร ด้วยคอนโทรล Winsock ซึ่งในการใช้งานจริง จำเป็นที่เครื่อง Pocket PC ของคุณต้องมีการเชื่อมต่อกับ ระบบอินเตอร์เน็ต ผ่านทางรูปแบบต่างๆที่มีอยู่ในปัจจุบัน เช่น Wireless, Bluetooth, GPRS, EDGE หรือไม่กระทั่ง การเสียบกับอุปกรณ์ประเภท air card ต่างๆ

แต่สำหรับในตัวอย่างนี้ ผมจะแสดงในส่วนของการพัฒนาโปรแกรม บน Emulator และจะนำโปรแกรมสร้างเป็นตัวติดตั้ง (อ่าน การสร้างโปรแกรมติดตั้ง เพิ่มเติม) ไปทดสอบบนเครื่องจริง

Downloadดาวน์โหลดโปรแกรม

ออกแบบหน้าตาโปรแกรม

  • ทำการเปิดโปรแกรม eVB ผ่านทางเมนู Start->Programs->Microsoft eMbedded Tools->eMbedded Visual Basic 3.0
  • คลิกเลือก File->New Project หรือกดปุ่ม Ctrl+N จะปรากฏหน้าต่าง ให้ทำการเลือก Windows CE for Pocket PC 2002 แล้วคลิกปุ่ม OK

รูปแสดง การเลือกสร้าง Project ใหม่
รูปแสดง การเลือกสร้าง Project ใหม่

  • ทำการวาง คอนโทรลต่างๆไว้ บนฟอร์ม ซึ่งประกอบด้วย Textbox 3 อัน และ CommandButton 1 อัน ดังรูป

รูปแสดง การวางคอนโทรลต่างๆไว้บนฟอร์ม
รูปแสดง การวางคอนโทรลต่างๆไว้บนฟอร์ม

  • คลิกเลือกที่คอนโทรลแต่ละตัว และทำการเปลี่ยนค่า Property ตามตารางด้านล่าง
Control Property Value
CommandButton Name cmdRequest
  Caption Go
TextBox1 Name txtURL
  Text www.sourcecode.in.th
TextBox2 Name txtFile
  Text /
TextBox3 Name txtOutput
  Text  
  ScrollBars 2 - vbVertical
  • จะได้ผลการกำหนด Property ดังรูป

รูปแสดง ผลที่ได้จากการกำหนด Property ให้กับปุ่ม
รูปแสดง ผลที่ได้จากการกำหนด Property ให้กับปุ่ม

เพิ่ม Winsock ข้าสู่โปรเจค

ในการเขียนโปรแกรมผ่านทางเครือข่าย จำเป็นจะต้องใช้คอนโทรลที่ชื่อ Winsock ในการติดต่อ ส่งผ่านข้อมูล ซึ่งจะถูกใช้ในการเขียนโปรแกรม ในลักษณะ Client/Server ซึ่งในตัวอย่างนี้ จะเป็นการนำเอา Winsock มาติดต่อไปยัง Web Server แล้วส่งคำสั่ง ร้องขอเอกสาร HTML ไปยัง Server พร้อมรับข้อมูลของ ไฟล์ HTML กลับมาแสดงผล ในช่อง TextBox

  • ทำการคลิกเลือกที่ เมนู Project->Components...
  • ทำการคลิกเลือก Microsoft CE WinSock Control 3.0

รูปแสดง การเลือกรายการของคอนโทรล winsock
รูปแสดง การเลือกรายการของคอนโทรล winsock

  • จากนั้นคลิกปุ่ม OK เพื่อยืนยัน
  • จะปรากฏคอนโทรลใหม่ขึ้นมาบน Toolbars ดังรูป

รูปแสดง คอนโทรล Winsock บนทูลบาร์
รูปแสดง คอนโทรล Winsock บนทูลบาร์

  • ทำการดับเบิ้ลคลิก คอนโทรล Winsock เพื่อวางไว้บน Form ดังรูป

รูปแสดง การเพิ่มคอนโทรล Winsock เข้าสู่ Form เพื่อใช้งาน
รูปแสดง การเพิ่มคอนโทรล Winsock เข้าสู่ Form เพื่อใช้งาน

เริ่มต้นใส่โค้ดการทำงาน

  • ทำการดับเบิ้ลคลิกปุ่ม cmdRequest ที่อยู่บนฟอร์ม จะปรากฏหน้าต่าง Code View
  • ทำการป้อนโค้ด ตามตาราง
Private Sub cmdRequest_Click()
Dim s
On Error Resume Next
WinSock1.Close
WinSock1.RemoteHost = txtURL.Text
WinSock1.RemotePort = 80
WinSock1.Connect
txtOutput.Text = ""
If Err.Number <> 0 Then
MsgBox "Error:" & Err.Number & vbCrLf & Err.Description
End If

s = "GET " & txtFile.Text & " HTTP/1.0 " & vbCrLf & vbCrLf
WinSock1.SendData s
If Err.Number <> 0 Then
MsgBox "Error:" & Err.Number & vbCrLf & Err.Description
End If
End Sub

จากโค้ดจะเป็นการประกาศตัวแปร s เพื่อใช้ในการเก็บคำสั่งที่จะส่งให้กับ Server จากนั้น ก็ใช้คำสั่ง On Error Resume Next เพื่อให้โปรแกรม ทำงานต่อได้ เมื่อมีความผิดพลาดเกิดขึ้น ถัดมาจะทำการตัดการติดต่อของ Winsock1 ที่มีอยู่ก่อนหน้าโดยใช้เมธอด Close และทำการกำหนด URL ของ Server ปลายทาง พร้อมหมายเลข Port 80 (80 เป็นหมายเลขพอร์ท ที่ใช้งานสำหรับ Web Server) แล้วทำการเชื่อมต่อไปยัง Server ด้วยเมธอด Connect

่ต่อมาจะทำการลบข้อความที่แสดงอยู่ในคอนโทรล txtOutput ออกไป แล้วตรวจสอบค่าของหมายเลขข้อผิดพลาดผ่านทาง Err.Number ว่ามีหรือไม่ ถ้ามีข้อผิดพลาดจะแสดงหน้าต่าง รายงานข้อผิดพลาดออกมาแสดง ขั้นตอนต่อมาจะทำการสร้างคำสั่งขึ้นมา โดยในคำสั่งจะเป็นการร้องขอไฟล์ ตามที่ได้กำหนดไว้ในคอนโทรล txtFile เมื่อพร้อมแล้วจะมีการสั่งคำสั่ง ไปยังเครื่อง Server โดยการใช้เมธอด SendData ผ่านทางคอนโทรล Winsock1 ที่มีการเชื่อมต่อกับ Server ไว้แล้ว สุดท้ายจะใช้คำสั่ง if เพื่อตรวจสอบข้อผิดพลาด หลังการส่งคำสั่ง อีกครั้ง

หลังจากการส่งคำสั่งไปยัง Server เป็นที่เรียบร้อยแล้ว ทางฝั่ง Server จะทำการตอบกลับมายัง Winsock1 ขั้นตอนต่อมา จะเป็นการรับข้อมูลที่ตอบกลับ มาแสดง โดยมีขั้นตอนดังนี้

  • เปิดหน้าต่าง Code View และทำการเลือกรายการ และ ดังรูป

รูปแสดง การสร้าง sub ของ Winsock เพื่อรับข้อมูลที่ส่งเข้ามา
รูปแสดง การสร้าง sub ของ Winsock เพื่อรับข้อมูลที่ส่งเข้ามา

  • ทำการป้อนโค้ด ตามตาราง เพื่อรับข้อมูลจาก Server มาแสดงในคอนโทรล txtOutput
Private Sub WinSock1_DataArrival(ByVal bytesTotal As Long)
Dim sRecieveDate
On Error Resume Next
WinSock1.GetData sRecieveDate
If Err.Number <> 0 Then
MsgBox "Error:" & Err.Number & vbCrLf & Err.Description
Else
txtOutput.Text = sRecieveDate
WinSock1.Close
End If
End Sub

การทำงานของโค้ด จะเริ่มจากการประกาศตัวแปร ที่จะใช้เก็บข้อมูลที่ส่งมาจาก Server ดังจะเป็นได้ว่า เราจะไม่กำหนดประเภทของตัวแปร ให้กับตัวแปร sRecieveDate ก็เพื่อให้เป็นตัวแปรแบบ Variant ซึ่งจะสามารถรับค่าต่างๆ ได้มากกว่าตัวแปรแบบอื่น จากนั้นจะใช้เมธอด GetData ของคอนโทรล Winsock1 รับค่าที่ส่งมา เอาไปเก็บไว้ในตัวแปร sRecieveDate สุดท้ายก็ตรวจสอบข้อผิดพลาด หากไม่เกิดข้อผิดพลาด ก็จะทำการแสดงข้อมูลจากตัวแปร sRecieveDate ไว้ใน txtOutPut และสั่งปิดการติดต่อกับ Server ของ Winsock1 ผ่านทางเมธอด Close

ซึ่งในการทดสอบโปรแกรมคุณจะต้องทำการเชื่อมต่อ อินเตอร์เน็ตไว้ เพื่อให้สามารถติดต่อกับ Web Server โดยในที่นี้คือ www.sourcecode.in.th แต่ถ้าคุณไม่มีการเชื่อมต่อ อินเตอร์เน็ตอยู่ อาจสามารถทดสอบได้ผ่านทาง การติดตั้ง IIS (IIS หรือที่เรียกกันว่า Internet Information Server เป็น WebServer ของ Microsoft ที่ให้ version ทดลองมากับ Windows XP) หรือโปรแกรม Apache ซึ่งเป็นโปรแกรม Web Server ที่ได้ติดตั้งภายในเครื่องตนเอง และ ทำการเปลี่ยน ข้อความในช่องแรกเป็น localhost หรือ 127.0.0.1 และทำการคลิกปุ่ม Go เพื่อทดสอบ

  • ทำการทดสอบโปรแกรม โดยกดปุ่ม F5 ให้คุณทดสอบคลิกปุ่ม Go

รูปแสดง การทดสอบการทำงานของโปรแกรม โดยคลิกปุ่ม Go
รูปแสดง การทดสอบการทำงานของโปรแกรม โดยคลิกปุ่ม Go

สำหรับท่านที่มีเครื่อง Pocket PC อาจทำการสร้างตัวติดตั้งโปรแกรมตามเนื้อหาในบท การสร้างโปรแกรมติดตั้ง เพื่อทำการทดสอบ การทำงานจริงของโปรแกรม และอย่าลืมที่จะตรวจสอบการคลิกเลือก Microsoft CE WinSock Control 3.0 ในกระบวนการสร้างโปรแกรมติดตั้ง ไม่เช่นนั้น โปรแกรมจะไม่สามารถทำงานได้อย่างถูกต้อง

ผมได้ทดสอบการทำงาน โดยได้ติดตั้งและทดสอบกับเครื่อง Pocket PC ของผมเอง จะได้ผลดังรูปครับ

รูปแสดง ผลการทำงานของโปรแกรม บนเครื่องจริง
รูปแสดง ผลการทำงานของโปรแกรม บนเครื่องจริง

 

BACK

สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI)
สายต่อจอ สำหรับเครื่อง macbook pro 2016 (usb-c to HDMI) ความละเอียดระดับ 4K
หัวแปลง Mini DisplayPort to HDMI Adapter หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
หัวแปลง Mini DisplayPort to HDMI Adapter สำหรับเครื่อง macbook air/pro, mac mini
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
สายต่อหูฟัง และชาร์จไฟ สำหรับ iPhone 7 และ 7 Plus
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
หัวแปลงจาก USB-C Type ไปเป็น USB 3.1 สำหรับ MacBook
ไขควงสำหรับเครื่อง Macbook Air/Pro
ไขควง สำหรับแกะเครื่อง Macbook Air/Pro (300บาท)
HDMI เข้า 3 ออก  1 มีรีโมท
HDMI เข้า 3 ออก 1 มีรีโมท (350บาท)
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
9M Blog บอกเล่าเรื่องราว การเขียนโปรแกรมของ นายเอ็ม
บริการ ถ่ายภาพรับปริญญา
OrmSin.com: ขายหนังสืองานฝีมือไทย-ญี่ปุ่น-จีน (country crafts)
อัตราค่าโฆษณา
 
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ
Freelance รับพัฒนาโปรแกรม

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th