หน้าแรก
 การบ้าน
  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
  มาส่อง...
2024-08-19 15:45:12
  ช่วยเขียนโปรเจค: การควบค...
2024-08-07 09:13:31
  เขียนโปรแกรมภาษาจาวา
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
  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

อัตราค่าโฆษณา
 
การเขียน Service Application เพื่อใช้งานบน Windows NT/2000/XP (อ่าน 21,337)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   
: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 3,504 ครั้ง)

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

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 

สำหรับบทความที่จะนำเสนอต่อไปนี้ จะเป็นการเขียนโปรแกรมสร้างเป็น Service หรือเรียกได้อีกอย่างว่า เป็นการสร้างโปรแกรม ที่ให้บริการไว้บน Server เพื่อให้ฝั่ง Client (ผู้ใช้บริการ) เข้ามาเรียกใช้บริการต่างๆที่มี ตัวอย่างของ Service ต่างๆบน Server จะมีอยู่หลากหลาย แต่ที่คุ้นๆ สำหรับเราๆท่านๆ ได้แก่ Web,FTP,Email ซึ่งอาจจะมีบางท่าน อาจจะสงสัยขึ้นมาว่า Web,FTP,Email มันเป็น Application ไม่ใช่หรือ? คำตอบคือใช่ ครับ แต่เป็น Application ที่ทำงานร่วมกับ Service ที่มีอยู่บน Server

Service Application จะมีการทำงานในลักษณะที่เป็น Background คือจะมีการเริ่มการทำงานบนระบบปฏิบัติการ (ฝั่ง Server ) ทันทีโดยที่ ผู้ใช้ไม่รู้ และจะทำงานไปเรื่อยๆ เพื่อรอรับการเรียกใช้จาก Client ดังตัวอย่างโปรแกรมที่ผมจะนำเสนอต่อไปนี้ Service Application ที่จะสร้างกันครั้งนี้ จะมีหลังการทำงานคือ รอรับการร้องขอจาก Client ที่ Port 81 แล้วทำการบันทึกการร้องขอนั้นไว้ในไฟล์ที่ชื่อ Weblogxxxx.log ครับ

กล่าวนำกันมาก็พอสมควรแล้ว คราวนี้ก็จะมาถึงขั้นตอนของการสร้างโปรแกรมตัวอย่างกันแล้วนะครับ สำหรับโปรแกรมที่ได้ จำเป็นที่จะต้องติดตั้งใช้งานได้กับ Windows NT/2000/XP เท่านั้น เอาละครับเริ่มกันเลยดีกว่า โดยเริ่มจากการเปิดโปรแกรม Delphi แล้วทำตามขั้นตอนดังนี้

1. เลือกสร้าง Service Application จากเมนู File->News->Other... แล้วทำการเลือก Service Application จาก แท็ป New ดังแสดงในรูปด้านล่าง

2. ทำการเพิ่ม Control ที่ชื่อ ServerSocket ซึ่งอยู่ในหมวด Internet Component Parllet ดังรูป

3. ในส่วนของโค้ดให้ทำการ เพิ่มการประกาศตัวแปรดังรูป

4. ทำการเลือก Control ServerSocket1 ที่ได้ทำการเพิ่มเข้ามาในขั้นตอนที่ 2 แล้วให้ทำการป้อนโค้ดต่อไปนี้ลงใน ส่วนของ Event OnClientRead

procedure TService1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  Buffer: PChar;
begin
  Buffer := nil;
while Socket.ReceiveLength > 0 do begin
    Buffer := AllocMem(Socket.ReceiveLength);
    try
      Socket.ReceiveBuf(Buffer^, Socket.ReceiveLength);
      Stream.Write(Buffer^, StrLen(Buffer));
    finally
      FreeMem(Buffer);
    end;

  Stream.Seek(0, soFromBeginning);
  Stream.SaveToFile('c:\Weblog' + IntToStr(ServiceThread.ThreadID) + '.log');
  end;
end;

5. สุดท้ายให้คุณเลือกที่ Control Service1 แล้วทำการเพิ่มโค้ดต่อไปนี้ลงในส่วนของ Event OnExecute

procedure TService1.ServiceExecute(Sender: TService);
begin
  Stream := TMemoryStream.Create;
  try
    ServerSocket1.Port := 81;
    ServerSocket1.Active := True;
    while not Terminated do begin
      ServiceThread.ProcessRequests(True);
    end;
    ServerSocket1.Active := False;
  finally
    Stream.Free;
  end;
end;

6. เอาละครับเมื่อผ่านมาถึงขั้นตอนนี้กันแล้ว ก็ให้ตรวจสอบว่าพิมพ์โค้ดถูกต้องหรือไม่ ต่อจากนั้นให้ทำการบันทึกไฟล์ Project เป็นชื่อ DelphiService แล้วทำการCompile โปรแกรม โดยการกดปุ่ม F9

7. หลังจากการ Compile แล้วเราจะได้ไฟล์ DelphiService.exe มาแล้วครับ ขั้นตอนต่อไป ก็จะเป็นการติดตั้ง Service Application ให้กับ Server ซึ่งสามารถทำได้โดย เรียกใช้โปรแกรม โดยผ่านทาง Command Prompt เช่น DelphiService /install (สำหรับการติดตั้ง) หรือ DelphiService /uninstall (สำหรับการถอดถอนโปรแกรม) ดังรูป

8. ต่อไปจะเป็นขั้นตอนของการเรียกใช้ Service ที่เราได้สร้างขึ้น โดยเลือกได้จาก Control Panel->Administrative Tools->Services จะปรากฏหน้าต่างที่แสดง Service ทั้งหมดที่อยู่บน Server รวมทั้ง Service ที่เราได้เขียนขึ้นมาเองที่ชื่อ Server1 ดังรูป

9. ให้ทำการคลิก Start เพื่อให้ Service เริ่มทำงาน หลังจากนั้นก็ให้ทำการเปิด WebBrowser พิมพ์ URL =http://127.0.0.1:81 เพื่อเรียกใช้บริการที่เราเขียนขึ้น (127.0.0.1 คือ IP Loop Back ,81 คือ หมายเลข Port ที่ให้บริการ) ดังรูป

10. หลังจากคุณได้ทำการเปิด URL ดังกล่าวแล้ว ให้คุณเปิดหาไฟล์ที่ชื่อ Weblogxxxx.log (xxxx=หมายเลขใดๆ) ที่อยู่ใน C:\ ซึ่งเป็นไฟล์ที่ Service Program ที่เราได้เขียนขึ้น สร้างขึ้นมาให้ เมื่อมี Client เรียกใช้ Service โดยไฟล์ดังกล่าวจะเก็บข้อมูลที่ Client ส่งมาให้ ดังแสดงในรูป

คุณจะเห็นได้ว่าภายในไฟล์ Weblogxxxx.log นั้น จะเก็บข้อมูลที่ WebBrowser ของ Client ส่งมา ยัง Server เพื่อขอข้อมูล

ทิ้งทาย

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

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

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


183.89.73.169 ความคิดเห็น #12 (จาก IP: 183.89.73.169)
รบกวนขอความรู้หน่อยนะคับ ไม่ทราบว่าเขียน service application ของ delphi สามารถสั่งให้รันโปรแกรมอื่นได้มั๊ยคับ ถ้าได้ พอจะมีโค๊ดเล็กๆ หรือคำสั่งให้ศึกษามั๊ยคับ<br><br>ขอบคุณคับ
จากคุณ : ภูวดล / iwebsoft@hotmail.com [2014-03-21 14:47:47]

101.108.29.100 ความคิดเห็น #13 (จาก IP: 101.108.29.100)
สั่งได้ผ่าน shell ครับ โค้ดจำไม่ได้ ค้น google เอาได้ อาจหายากหน่อย ไม่ค่อยมีคนเล่น delphi กันแล้ว
จากคุณ : maddog [2014-03-23 03:32:53]

110.77.211.145 ความคิดเห็น #15 (จาก IP: 110.77.211.145)
รบกวนสอบถามค่ะ คือทำ windows service ของ delphi XE4 แล้วสามารถรันบน windows xp ได้ แต่ไม่สามารถรับบน windows 7 และ windows 8 ได้ พอมีวิธีไหมค่ะ
จากคุณ : nan / nannykawaiii@hotmail.com [2014-04-10 10:40:36]

61.90.53.25 ความคิดเห็น #16 (จาก IP: 61.90.53.25)
อันนี้ไม่ค่อยทราบ แต่ลองเอาไป compile บน window 7 แล้วก็ลองดูครับว่าต้องแก้ไขอะไรบ้าง ถ้า compile ผ่านก็ใช้งานได้เลยครับ
จากคุณ : maddog [2014-04-10 16:39:28]
สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

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

Zoom หน้าจอด้วย Delphi

What?s new in Delphi 2005 #1 ( for ?in loop statement)

Dynamic Cast ใน Delphi

เขียนโปรแกรมให้ Run ตอน Startup Windows

สร้าง LED Control

การเขียน ActiveForm(ActiveX Control) เบื้องต้น

โปรแกรม Post ข้อมูล ไปยังไฟล์ ASP

แสดงหมายเลข IP Address ของเครื่องบน NetWork

การแสดงรายชื่อ Email Contact ของ Microsoft Outlook

การหาตำแหน่งของ Caret ใน Memo
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