หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  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
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  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
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
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
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  จ้า...
2020-10-18 16:53:21
  พอดีผมเหลื่อแค่ตัดสต๊อก...
2020-05-31 21:49:43
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
Client/Server โดยใช้ UDP ผ่านทาง MS Winsock (อ่าน 37,263)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   
: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 6,381 ครั้ง)

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

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 
UDP คือ อะไร ??? คำถามนี้บางท่านอาจจะงง กันบ้าง ถ้าหากไม่เคยได้ศึกษาเรื่องของ Protocol ฉะนั้น ผมขอเกริ่นสั้นๆ เพื่อสร้างความเข้าใจกันก่อนนะครับ

ก่อนอื่นคงต้องเริ่มจาก Protocol คืออะไรกันก่อนนะครับ Protocol ถ้าพูดให้ง่ายก็คือ ข้อตกลงของการรับส่งข้อมูล ว่าจะต้องส่งข้อมูลอะไร และส่งอย่างไร มีรูปแบบยังไง และจะตอบกลับในลักษณะใด ยกตัวอย่างก็เช่น HTTP (Hypertext Transfer Protocol ) ซึ่งเป็น โปรโตคอลของเว็บนะครับ เมื่อผมพิมพ์ www.sourcecode.in.th เพื่อขอดูข้อมูลเว็บที่ผมต้องการ โดยผ่านทาง Web Browser (ยี่ห้อต่างๆ เช่น IE, Nescap) ตัวของ Web Browser ก็จะติดต่อกับ Web Server แล้วทำการส่งข้อความไปขอข้อมูล ซึ่งข้อความนี้จะต้องเป็นรูปแบบที่ Web Server เข้าใจ ซึ่งรูปแบบ ดังกล่าว ก็คือ Protocol นั้นเอง ดังตัวอย่างด้านล่างจะเป็นข้อความที่ส่งไปร้องขอข้อมูลที่ผมดักมาได้ครับ

GET / HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: th
Accept-Encoding: gzip, deflate
If-Modified-Since: Thu, 06 Jun 2002 17:44:49 GMT
If-None-Match: "1934e-c8-3cff9f91"
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
Host: www.sourcecode.in.th
Connection: keep-alive

ต่อมาก็คงเป็นเรื่องที่เกี่ยวกับ UDP ซึ่งย่อมาจาก User Datagram Protocol , UDP เป็น Protocol ที่อยู่ในชั้นของ Transport Layer ซึ่งในชั้นนี้จะมีอยู่ 2 Protocol คือ TCP และ UDP ผมจะขอกล่าวเฉพาะ UDP นะครับ

UDP เป็นการส่งข้อมูลที่ไม่มีการยืนยันการรับส่งข้อมูล คือผู้ส่งไม่สามารถรู้ได้ว่าข้อมูลได้ถึงผู้รับแล้วหรือไม่ มาถึงตรงนี้ คงเกิดคำถามขึ้นมากันบ้างแล้วนะครับ UDP มันมีข้อเสียอย่างนี้ แล้วจะใช้ได้เร้อ.... ผมต้องบอกเลย ว่าได้ฮะ ใช้ได้แน่ๆ แต่เราจะต้องเขียนการตรวจสอบข้อมูลเอาเอง เช่น ถ้าผมส่งข้อมูลไป ถ้าฝั่งที่รับข้อมูลได้รับข้อมูลแล้ว ก็ให้ตอบกลับมาให้ผม ผมก็ทราบแล้วว่าข้อมูลไปถึง แต่ถ้าไม่มีการตอบกลับภายในระยะเวลาที่ผมกำหนด ก็ให้แจ้งว่าผู้รับไม่ได้รับข้อความ

ข้อดีของ UDP ที่เห็นกันได้ชัดเจนคือ มันจะส่งข้อมูลได้เร็วกว่า แบบ TCP และจะไม่มีการสร้าง Connection เกิดขึ้น ทำให้ข้อมูลที่วิ่งในเครือข่ายมีน้อยลงด้วย

อ๊ะ เกริ่นมาพอสมควรกันแล้วนะครับ งานนี้มาเริ่มสร้างโปรแกรม Client / Server เพื่อแสดงการรับส่งข้อมูลโดยใช้ UDP กันเลยครับ

1. เปิดโปรแกรม Microsoft Visual Basic ทำการเลือกสร้างโปรเจ็คแบบ Standard EXE

2. ทำการเพิ่ม คอนโทรล MS Winsock เข้ามาในโปรเจ็ค โดยเลือกที่ Project->Components แล้วทำการคลิกเลือก Microsoft Winsock 6.0 ดังรูป

3.ทำการเลือกคอลโทรลต่างๆ แล้ววางตำแหน่งดังรูป

4.ทำการหนด Property ต่างๆ ดังนี้

Name Property Value
Text1 Text [ว่าง]
Text1 Multiline True
Text2 Text [ว่าง]
Text2 Multiline True
Text3 Text [ว่าง]
Command1 Caption Send
Winsock1 Protocol 1-sckUDPProtocol
Winsock2 Protocol 1-sckUDPProtocol

5. ทำการคัดลอกโค้ดนำไปใส่ในส่วน View Code

Private Sub Command1_Click()
 If Text3.Text <> "" Then
  Winsock2.RemoteHost = Winsock2.LocalIP
  Winsock2.RemotePort = 6543
  Winsock2.SendData Text3.Text
  Text3.Text = ""
 End If
End Sub

Private Sub Form_Load()
 Winsock1.Bind 6543, Winsock1.LocalIP
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim str As String
 Winsock1.GetData str
 Text1.Text = Text1.Text & str & Chr(13) & Chr(10)
 
 'send message to Client
 Winsock1.SendData "[received]" & Time
 
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim str As String
 Winsock2.GetData str
 Text2.Text = Text2.Text & str & Chr(13) & Chr(10)

End Sub

6. เมื่อเสร็จแล้ว ก็ทดลอง Run โปรแกรมกันเลยครับ ทดลองพิมพ์ข้อความแล้วกด Send ดูนะครับ

อธิบายโปรแกรม
โปรแกรมนี้จะทำงานเป็น Server และ Client ในโปรแกรมดียวกัน แต่จะติดต่อส่งข้อมูลระหว่างกันผ่านทาง MS Winsock Control

การทำงานของโปรแกรมจะเริ่มจากส่วนของ Winsock1 ที่ทำหน้าที่เป็น Server ทำการ Bind เพื่อรอคอยรับข้อมูลจากผู้ส่ง ตรงหมายเลขพอร์ท 6543 และ หมายเลข IP ของเครื่อง Server (Winsock1.LocalIP) และ เมื่อ Server ได้รับข้อมูลที่ส่งมา คือจะเกิด Event Winsock1_DataArrival ขึ้น ผมก็จะรับข้อมูลที่ส่งมาโดยใช้ Methode GetData ของ Winsock เพื่อนำข้อมูลขึ้นมาแสดงที่คอนโทรล Text1

ส่วนการทำงานของฝั่ง Client จะทำการกำหนดชื่อ Host และ หมายเลขพอร์ท ที่เป็นปลายทาง แล้วทำการส่งข้อมูลที่อยู่ในคอนโทรล Text3 ออกไป ตอนนี้ผมอยากให้สังเกตุที่คำสั่งในการกำหนด Host ปลายทาง คือ

Winsock2.RemoteHost = Winsock2.LocalIP

จะเห็นได้ว่าผมกำหนดให้ Winsock2 ทำการส่งข้อมูลที่ LocalIP (ก็คือ ip ของเครื่องตัวเอง) เพื่อเป็นการแสดงบนเครื่องๆนี้ เท่านั้น ***หากต้องการส่งไปยังเครื่องอื่น ที่ Run โปรแกรมนี้เช่นกัน แค่เพียงเปลี่ยนจาก Winsock2LocalIP ไปเป็น หมายเลข IP ของเครื่องที่ต้องการติดต่อ ก็ส่งข้อมูลได้แล้วครับ

ปิดท้าย
จะเห็นได้ว่าโปรแกรมตัวอย่างผมจะแสดงไว้ในหน้าต่างเดียวกันเลย ก็เพื่อลดขั้นตอนในการอธิบายลงครับ เอาเฉพาะแนวทาง ที่คุณจำเป็นจะต้องต่อยอด ด้วยตัวเองครับ หวังว่าตัวอย่างโปรแกรมที่ผมได้นำมาเสนอครั้งนี้ อาจจุดประกาย การสร้างสรรค์โปรแกรม ในตัวคุณขึ้นมาบ้างนะครับ แล้วพบกันใหม่ กับ 9'M :-P

: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 6,381 ครั้ง)
 

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


49.48.202.209 ความคิดเห็น #5 (จาก IP: 49.48.202.209)
ถ้าvb6 เขียนควบคุมhardware ผ่านอินเตอร์เน็ตละครับ
ขอบคุณคับ
จากคุณ : lee / salee1_@hotmail.com [2013-12-24 22:52:15]

118.173.222.120 ความคิดเห็น #7 (จาก IP: 118.173.222.120)
ก็ต้องเขียนเป็น 2 ส่วนคือส่วนควบคุม hardware และส่วนอินเตอร์เน็ตที่ใช้ในการส่งคำสั่ง ซึ่งต้องออกแบบคำสั่งและการส่งข้อมูลเอาตามความต้องการ
จากคุณ : maddog [2013-12-26 13:35:06]
สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

 
 
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
บทความที่เกี่ยวข้อง

บันทึกภาพจาก WebCam

เขียนโปรแกรม visual basic 6 แสดงภาพจาก กล้อง WebCam ของคุณ

การ Ping หมายเลข IP

View Source ของเว็บด้วย Inet (Microsoft Internet Tranfer Control)

การเข้าถึงเอกสาร HTML ผ่านทาง WebBrowser Control

ส่ง Broadcast ข้อมูล ด้วย VB

โปรแกรม Daytime (ตัวอย่างการใช้ Winsock Control)

การใช้งาน Winsock Control

แสดงสถานะการดาวน์โหลดเว็บเพจ
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

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

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