1 of 25 โปรแกรมสนทนา (chat program) · 1 of 25...
TRANSCRIPT
1 of 25
โปรแกรมสนทนา (Chat Program)
• ทฤษฏ Client/Server
Client/Server เปนการอธบายความสมพนธระหวางโปรแกรมคอมพวเตอร 2 โปรแกรมโดย
โปรแกรมหนงทเปน client จะสรางคาขอบรการจากอกโปรแกรมหรอ server ทจะทาใหการขอครบถวน
ถงแมวาแนวคด client/server สามารถใชโดยโปรแกรมภายในคอมพวเตอรเครองเดยวแตแนวคดนเปน
แนวคดสาคญในระบบเครอขายในเครอขายแบบจาลอง client/server ใหแบบแผนการตดตอภายใน
โปรแกรมทใหประสทธภาพการกระจายขามตาแหนงทตางกนทรานแซคชนของคอมพวเตอรของผใช
โปรแกรม server ทธนาคารโปรแกรม server จะสงตอคาขอไปยงโปรแกรม client ของตวเองซงเปนการสง
คาขอไปยงฐานขอมลแมขาย ในคอมพวเตอรเครองอนของธนาคาร ซงเปนการสงขอมลกลบไปยงโปรแกรม
client ในคอมพวเตอร เพอแสดงสารสนเทศใหกบผขอหรอผใช
แบบจาลอง client/server จะมแมขาย (server) 1 แมขาย บางครง เรยกวา daemon เปนผกระทา
และคอยคาขอของ client โดยปกตโปรแกรม client หลายโปรแกรมใชบรการรวมกนจากโปรแกรม server
1 โปรแกรมทงโปรแกรม client และ server มกจะเปนสวนหนงของโปรแกรมประยกตขนาดใหญเมอ
เปรยบเทยบกบอนเตอรเนต web browser ของผใชเปนโปรแกรม client ทขอการบรการจาก web server
(ในทางเทคนคเรยกวา Hypertext Transfer Protocol server ) ซงเปนคอมพวเตอรอกเครองบน
อนเตอรเนตคลายคลงกบคอมพวเตอรทตดตง TCP/IP ยนยอมใหผใชสรางคาขอ client เพอขอไฟลจาก
file transfer protocol server ในคอมพวเตอรอกเครองบนอนเตอรเนต แบบจาลองความสมพนธของ
โปรแกรมแบบอนไดแก master/slave ซงมโปรแกรมหลกในการทางานและ peer to peer ทใหหนงใน
สองโปรแกรมสามารถทรานแซคชนเรมตนได
- Server คอ เครองททาหนาทในการใหบรการแก Client
- Client คอ เครองทไปขอใชบรการอยางใดอยางหนงจาก Server
- เปนระบบททางานในรปของความสมพนธของ Process ทอยบนตางเครองกน
- มขอบขายการทางานทแบงแยกกนอยางชดเจน คอ process ทใชเปนตวใหบรการอยในเครอง
หนง ใน ขณะท Client Process เปนตวใชบรการจะอยอกเครองหนง
2 of 25
Protocol
โปรโตคอล คอระเบยบวธทกาหนดขนสาหรบการสอสารขอมลใหสามารถสงผานขอมล
ไปยงปลายทางไดถกตองหรอถาจะเปนการเปรยบเทยบอยางทพดไวขางตนกคอภาษาท
คอมพวเตอรใชในการตดตอสอสารกนนนเองซงปจจบนพบวามหลายภาษาหรอหลาย Protocol
เชนโปรโตคอลพฒนาขนโดยบรษท Novell ซงเปนผพฒนาระบบปฏบตการ Netware แบง
ออกเปน protocol หลก 2 protocol คอ IPX (Internet Packet Exchange) และ SPX (Sequence
Packet Exchange) โดย IPXทาหนาทในระดบ network layer มกลไกการสงผานขอมลแบบ
connectionless unreliable หมายความวาผสงขอมลไมตองรอสญญาณยนยนการรบขอมลจาก
ผ รบและไมมการตรวจสอบวาผ รบไดรบขอมลหรอไมสวน SPX ทาหนาทในระดบ transport layer
โดยสงผานขอมลในแบบตรงขาม IPX คอจะมการตรวจสอบสญญาณการยนยนการรบ-สงขอมล
จากผ รบและมการสงขอมลทนาเชอถอปกต Novellใช IPX เพอสงและรบ Packet และใช SPXเพอ
จดการเครอขาย
Apple Talk พฒนาโดยบรษท Apple Computer เพอเปนprotocol สาหรบเครอง Macintosh ซง
protocol Apple Talk ถกออกแบบใหทางานแบบ peer- to- peer ทถอวาเครองคอมพวเตอรทก
ตวทตออยในเครอขายสามารถเปน server ไดทกเครองตอมาในป 1989 Apple Talk ถกพฒนาให
สามารถรองรบเครอขายทใหญขนโดย สามารถมเครองลกขายและอปกรณทเชอมตอในเครอขาย
ไดมากกวาเดมเรยกวา Apple Talk Phase 2 และยงเพม protocol ทสามารถเชอมกบเครอขาย
แบบ Ethernet และ Token Ring ไดเรยกวา Ether Talk และ Token Talk
TCP/IP
ในการเชอมโยงเครอขายคอมพวเตอรจะตองมมาตรฐานหรอระเบยบทใชในการดตอ
สอสารทเรยกวาโปรโตคอลสาหรบการตดตอผานเครอขายอนเทอรเนตซงมเครองอมพวเตอรท
เชอมตอกนและมผใชจานวนมากมายมหาศาลกจาเปนตองมการกาหนดวธการทใชเปนมาตรฐาน
โดยใชโปรโตคอล ชอวาโปรโตคอลทซพ/ไอพ (TCP/IP) ซงยอมาจากคาวา Transmission Control
Protocol /Internet Protocol
โปรโตคอลทซพ/ไอพจะมการกาหนดกฎเกณฑรปแบบการเชอมตอของเครอคอมพวเตอร
ในเครอขายการโอนยายขอมลการแสดงสถานะทใชในการเชอมตอขอมลระหวาง เครองตนทาง
และเครองปลายทางทมยหอมากมายหลายระดบ(ตงแตระดบคอมพวเตอรพซแสตนอโลน เวรคส
3 of 25
TPC/IP เปนชดโปรโตคอลทใชอนเตอรเนต ซงเปนทนยมใชกนแพรหลายมากในปจจบน
ในทนจะไดอธบายพนฐานของโปรโตคอลชดนไวบาง จดเรมตนของชดโปรโตคอลนมาจากกลม
งานวจยของ Defense Advanced Research Project Agency (DARPA) ซงไดตงเครอขาย
ARPANET แนวความคดในการทา internetwork ของ ARPANET นมมากอนทจะเกด ISO กม
บทบาทมากในการอางองทางดาน computer network จงควรพจารณาเปรยบเทยบชด TCP/IP น
กบ OSI model ดวย
ตามแนวคดของ OSI อาจมองเปนภาพรวมไดวาในระดบชนท 1 – 3 เปน local
procedures และในระดบชนท 4-7 เปน end- to- end procedures ถาสงเกตจะเหนวาใน
ระดบชนท 2 และ 4 นนจะมหนาทจดการกบขอผดพลาดเพมความเชอถอได ซงอาจมองวา
ซาซอนกนทงนเพราะในระดบชนท 3 อาจทาใหเกดการสญหายของขอมลในชวงทอยใน queue ท
โหนดเองแทนทจะไปหายบน line หรออกสาเหตหนงคออาจมความจาเปนตองละทงขอมล
บางสวนไปเพราะเกด Congestion จงทาใหดเหมอนวาระดบชนท 2 และ 4 นมหนาทซาซอนกน
ในบางสวนทอธบายถงแนวคดนกอนเพราะตองการใหเขาใจวาในการออกแบบโปรโตคอลแตละ
ชนนนจะตองพจารณาสภาพแวดลอมของโปรโตคอลระดบลาง คอผใหบรการดวย แบบจาลองการสอสารขององคกรมาตรฐานสากล ISO
แบบจาลองของการสอสารขอมลทกาหนดขนมาโดยองคการมาตรฐานสากล
(International Standard Organization – ISO ) และมชอเรยกวา Open
System Interconnection Model(OSI Model) ซงกอาจเรยกรวมกนแบบยอๆเปน ISO /
OSI Model แบบจาลองนไดแบงระยยการทางานในการสอสารออกเปนชนยอยๆ จานวน 7 ชน
4 of 25
โดยหลกการแลวแตละชนจะสอสารกบชนในระดบเดยวกนทอยบนเครองอกเครองหนงแต
ในทางปฏบต แตละชนทอยตดกนทงทอยบนหรอลางเทานนจะยกเวนกแตชลางสดคอชน
Physical ทจะตดตอกบชน Physical ของอกเครองหนงได มขอสงเกตวาในทางปฏบตจรงมบาง
โอกาสเครองคอมพวเตอรอาจจะมการใชชนใดชนหนงพรอมๆ กนหลายๆครงโดยแตละครงมความ
เปนอสระตอกน เชน กรณเครองคอมพวเตอรทตดตงการดเครอขายจานวนหลายการดโดยอาจจะ
เปนอเตอรเนต (Ethernet) ทงหมด หรออเทอรเนตผสมกบโทเคนรง(Token Ring) และอนๆ กได
ในโลกแหงจนตนาการของแบบจาลอง ISO / ISO นนควรจะไดกาหนดตวสถาปตยกรรมน
ขนมากอนจากนนชนสวนตางๆ ทางดานเครอขายจงตามมาทหลงโดยหนวยงานทางการคา
หนวยงานวจยและองคกรณมาตรฐานแตละชนสวนทถกสรางขนมา จะตองตรงตามมาตรฐานชน
ใดชนหนงของสถาปตยกรรมนอยางสมบรณ อยางไรกตามในโลกแหงความเปนจรงนนม
เทคโนโลยจานวนไมนอยทถกพฒนาขนกอนทจะมแบบจาลองนและในบางกรณเทคโนโลยท
เกดขนภายหลงจากนบางอยางกไมไดเดนตามแบบจาลองนอยางสมบรณแมวาโลกแหงความเปน
จรงจะดหางไกลจากโลกแหงจนตนาการ แตผลทไดรบจากแบบจาลองนกชวยใหเกดแรงผลกดน
ไปสการพฒนาระบบทสามารถทางานรวมกนไดของผผลตรายการตางๆ
รายละเอยดของแตละชนในแบบจาลอง
ชน Physical ชน Physical เปนการอธบายคณสมบตทางกายภาพ เชน คณสมบตทางไฟฟา และกลไกตางๆ
ของวสดทใชเปนสอกลาง ตลอดจนสญญาณทชในการสงขอมล คณสมบตทกาหนดไวในชนน
ประกอบดวยคณลกษณะทางกายภาพของสาย อปกรณเชอมตอ (connector) ระดบความตาง
ศกยของไฟฟา (voltage) และอนๆ เชนอธบายถงคณสมบตของสาย Unshield Twisted
Pair(UTP)
5 of 25
ชน Data-link
ชน Data-link เปนชนทอธบายถงการสงขอมลไปบนสอกลาง ชนนยงไดแบงออกเปนชนยอย (sub
layer) คอ Logical Link Control (LLC) และ Media Access Control (MAC) การแบงแยกเชนน
จะทาใหชน LLC เดยวจะสามารถใชชน Macทแตกตางกนแยกไปไดหลายชน ชน MAC นนเปน
การดาเนนการเกยวกบแอดเดรสทางกายภาพอยางทใชในมาตรฐานอเทอรเนตและโทเคนรง
แอดเดรสทางกายภาพนจะถกใชงานในชน Network เพอความชดเจนครบถวนสมบรณของการใช
ชน Data-link น รายละเอยดการใชงานกรณของอเทอรเนตและโทเคนรง
ชน Network
ในขณะทชน Data link ใหความสนใจกบแอดเดรสทางกายภาพ แตการทางานในชน Network จะ
ใหความสนใจกบแอดเดรสทางตรรกะการทางานในชนน จะเปนการเชอมตอและการเลอกเสนทาง
นาพาขอมลระหวางเครองสองเครองในเครอขายชน Network ยงใหบรการเชอมตอในแบบ
Connection Oriented อยางเชน x.25 หรอ บรการแบบ Connectionless เชน Internet Protocol
ซงใชงานโดยชน Transport ตวอยางของการบรการหลกทชน Network มใหคอ การเลอกเสนทาง
นาพาขอมลไปยงปลายทางทเรยกวา Routing ตวอยางของโปรโตคอลในชนนประกอบดวย
Internet Protocol (IP) และ Internet Control Message Protocol (ICMT)
ชน Transport
ในชนนมบางโปรโตคอล จะใหบรการทคอนขางคลายกบทมในชน Network โดยมบรการดาน
คณภาพททาใหเกดความนาเชอถอ แตในบางโปรโตคอลทไมมการดแลเรองคณภาพดงกลาวจะ
อาศยการทางานในชน Transport นเพอชวยดแลเรองคณภาพแทน เหตผลทสนบสนนการใชงาน
ชนนกคอในบางสถานการณของชนในระดบลางทงสาม (คอชน Physical Data-Link และ
Network)ดาเนนการโดยผใหบรการโทรคมนาคมการจะเพมความมนใจในคณภาพใหกบ
ผใชบรการกดวยการใชชน Transport น “Transmission Control Protocol(TCP) เปนโปรโตคอล
ในชน Transport ทมการใชงานมากทสด”
ชน Session
ชน session ทาหนาทสรางการเชอมตอ , การจดการระหวางการเชอมตอ , และการเชอมตอคาวา
“เซสชน” (Session) นนหมายถงการเชอมตอกนในเชงตรรกะ (Logic) ระหวางปลายทางทงสอง
ดาน(เครอง 2เครอง) ชนนอาจไมจาเปนตองถกใชงานเสมอไป อยางเชน ถาการสอสารเปนไปใน
6 of 25
ชน Presentation
ชน Presentation ใหบรการทาการตกลงกนระหวางสองโปรโตคอลถงไวยากรณ (Syntax)ทจะใช
ในการรบสงขอมล เนองจากวาไมมการรองรบถงไวยากรณทจะใชรวมกน การทางานในชนนจงม
บรการในการแบงขอมลตามทไดรบการรองขอ
ชน Application
ชน Application เปนชนบนสดของแบบจาลอง ISO/OSI เปนชนทใชบรการของชน Presentatoin
(และชนอนๆ ในทางออมดวย) เพอประยกตใชงานในดานตางๆ เชนการทา E- mail Exchange
(การรบสงอเมล) ,การโอนยายไฟล หรอการประยกตใชงานทางดานเครอขายอนๆ
TCP/IP
ประกอบดวยโปรแกรมททางานรวมกน 2 ตวคอ Transmission Control Protocol (TCP)
และ Internet Protocol (IP) การแบงลกษณะในการทางานกแบงเปน TCP มหนาทในการ
ตรวจสอบการรบสงขอมลระหวางเครองคอมพวเตอรผ รบและเครองคอมพวเตอรผสง ใหไดรบ
ขอมลทถกตองและครบถวนหรอหากมการสญหายของขอมล กจะมการแจงใหตนทางทสงขอมล
7 of 25
ทมาของ TCP /IP
ถกพฒนาโดยกระทรวงกลาโหมของสหรฐอเมรกา หรอ DOD (Department of Defense)
ซงไดมการกาหนดและเรมใชรปแบบสถาปตยกรรม และ โปรโตคอลสาหรบเครอขายระดบ WAN
ท DOD ไดพฒนาขนมาใชเองคอ ARPANET และ โปรโตคอล TCP / IP เพอใชในการเชอมโยง
โฮสตคอมพวเตอรทมความหลากหลาย แตกตางกน และอยหางไกลกน ใหสามารถตดตอสอสาร
ขอมลกนได
Internet Address
หวใจสาคญของ TCP IP คอการจดเสนทางขาวสารซงอยทการาหนด Address ทเรยกวา Internet
Address แมขาย TCP / IP และทกสถานงานทกตวตองม Internet Address ทไมซากน
ประกอบดวยรหสเครอขายซงกาหนดจากศนยกลางและจะถกบรหารโดยเครอขาย ทองถนเสนทาง
ทงหมดจะม ARP (Address Recognition Protocol) เปนผแยกแยะสญญาณ Internet Address
เปนเลข 32 bit ทจะถกกาหนดใหทก Node บนเครอขาย Address นจะชวยให Gateway
แยกแยะเสนทางขอมลทจะสงจากเครองหนงไปยงอกเครองหนงโดยม UDP : User Data
Protocol เปนตวกาหนดวา Application ใดจะเปนผ รบขอมลโปรโตคอล IP ใหการสอสารแบบ
ดาตาแกรมระหวาง Node Internet Address ประกอบดวย 4 สวน AAA.BBB.CCC.DDD แตละ
สวนจะเรยกวาฟลดใชเลขฐาน 10 คนดวยจด class ของ Internet Address แบงไดดงน
Class A ถาฟลตแรกมคา 0 - 127
Class C ถาฟลตแรกมคา 128 - 191
Class C ถาฟลตแรกมคา 192 – 225
Class D ถาฟลตแรกมคา 224 - 239
ฟลตแรกจะมคาไมเกน225 เทานน การตความขนอยกบคลาสของมน
8 of 25
1. ชนโฮสต-เครอขาย (Host-to-Network Layer) โพรโตคอลสาหรบการควบคมการสอสารในชนนเปนสงทไมมการกาหนดรายละเอยดอยางเปนทางการ
หนาทหลกคอการรบขอมลจากชนสอสาร IP มาแลวสงไปยงโหนดทระบไวในเสนทางเดนขอมลทางดาน
ผ รบกจะทางานในทางกลบกน คอรบขอมลจากสายสอสารแลวนาสงใหกบโปรแกรมในชนสอสาร
2. ชนสอสารอนเทอรเนต (The Internet Layer) ใชประเภทของระบบการสอสารทเรยกวา ระบบเครอขายแบบสลบชองสอสารระดบแพกเกต (packet-
switching network) ซงเปนการตดตอแบบไมตอเนอง (Connectionless) หลกการทางานคอการปลอยให
ขอมลขนาดเลกทเรยกวา แพกเกต (Packet) สามารถไหลจากโหนดผสงไปตามโหนดตางๆ ในระบบจนถง
จดหมายปลายทางไดโดยอสระ หากวามการสงแพกเกตออกมาเปนชดโดยมจดหมายปลายทางเดยวกนใน
ระหวางการเดนทางในเครอขาย แพกเกตแตละตวในชดนกจะเปนอสระแกกนและกน ดงนน แพกเกตท
สงไปถงปลายทางอาจจะไมเปนไปตามลาดบกได
a. IP (Internet Protocol) IP เปนโปรโตคอลในระดบเนตเวรคเลเยอร ทาหนาทจดการเกยวกบแอดเดรสและขอมล และควบคมการสง
ขอมลบางอยางทใชในการหาเสนทางของแพกเกต ซงกลไกในการหาเสนทางของ IP จะมความสามารถใน
การหาเสนทางทดทสด และสามารถเปลยนแปลงเสนทางไดในระหวางการสงขอมล และมระบบการแยก
และประกอบดาตาแกรม (datagram) เพอรองรบการสงขอมลระดบ data link ทมขนาด MTU (Maximum
Transmission Unit) ทแตกตางกน ทาใหสามารถนา IP ไปใชบนโปรโตคอลอนไดหลากหลาย เชน
Ethernet ,Token Ring หรอ Apple Talkการเชอมตอของ IP เพอทาการสงขอมล จะเปนแบบ
connectionless หรอเกดเสนทางการเชอมตอในทกๆครงของการสงขอมล 1 ดาตาแกรม โดยจะไมทราบ
ถงขอมลดาตาแกรมทสงกอนหนาหรอสงตามมา แตการสงขอมลใน 1 ดาตาแกรม อาจจะเกดการสงได
9 of 25
3. ชนสอสารนาสงขอมล (Transport Layer) แบงเปนโพรโตคอล 2 ชนดตามลกษณะ ลกษณะแรกเรยกวา Transmission Control Protocol (TCP) เปน
แบบทมการกาหนดชวงการสอสารตลอดระยะเวลาการสอสาร (connection-oriented) ซงจะยอมใหมการ
สงขอมลเปนแบบ Byte stream ทไวใจไดโดยไมมขอผดพลาด ขอมลทมปรมาณมากจะถกแบงออกเปน
สวนเลกๆ เรยกวา message ซงจะถกสงไปยงผ รบผานทางชนสอสารของอนเทอรเนต ทางฝายผ รบจะนา
message มาเรยงตอกนตามลาดบเปนขอมลตวเดม TCP ยงมความสามารถในการควบคมการไหลของ
ขอมลเพอปองกนไมใหผสง สงขอมลเรวเกนกวาทผ รบจะทางานไดทนอกดวย
โปรโตคอลการนาสงขอมลแบบทสองเรยกวา UDP (User Datagram Protocol) เปนการตดตอแบบไม
ตอเนอง (connectionless) มการตรวจสอบความถกตองของขอมลแตจะไมมการแจงกลบไปยงผสง จงถอ
ไดวาไมมการตรวจสอบความถกตองของขอมล อยางไรกตาม วธการนมขอดในดานความรวดเรวในการสง
ขอมล จงนยมใชในระบบผใหและผใชบรการ (client/server system) ซงมการสอสารแบบ ถาม/ตอบ
(request/reply) นอกจากนนยงใชในการสงขอมลประเภทภาพเคลอนไหวหรอการสงเสยง (voice) ทาง
อนเทอรเนต
a. UDP : (User Datagram Protocol) เปนโปรโตคอลทอยใน Transport Layer เมอเทยบกบโมเดล OSI โดยการสงขอมลของ UDP นนจะเปน
การสงครงละ 1 ชดขอมล เรยกวา UDP datagram ซงจะไมมความสมพนธกนระหวางดาตาแกรมและจะ
ไมมกลไกการตรวจสอบความสาเรจในการรบสงขอมล
กลไกการตรวจสอบโดย checksum ของ UDP นนเพอเปนการปองกนขอมลทอาจจะถกแกไข หรอมความ
ผดพลาดระหวางการสง และหากเกดเหตการณดงกลาว ปลายทางจะไดรวามขอผดพลาดเกดขน แตมนจะ
เปนการตรวจสอบเพยงฝายเดยวเทานน โดยในขอกาหนดของ UDP หากพบวา Checksum Error กให
ผ รบปลายทางทาการทงขอมลนน แตจะไมมการแจงกลบไปยงผสงแตอยางใด การรบสงขอมลแตละครง
หากเกดขอผดพลาดในระดบ IP เชน สงไมถง, หมดเวลา ผสงจะไดรบ Error Message จากระดบ IP เปน
ICMP Error Message แตเมอขอมลสงถงปลายทางถกตอง แตเกดขอผดพลาดในสวนของ UDP เอง จะไม
มการยนยน หรอแจงใหผสงทราบแตอยางใด
b. TCP : (Transmission Control Protocol) อยใน Transport Layer เชนเดยวกบ UDP ทาหนาทจดการและควบคมการรบสงขอมล ซงมความสามารถ
10 of 25
4. ชนสอสารการประยกต (Application Layer) มโพรโตคอลสาหรบสรางจอเทอรมนลเสมอน เรยกวา TELNET โพรโตคอลสาหรบการจดการแฟมขอมล
เรยกวา FTP และโพรโตคอลสาหรบการใหบรการจดหมายอเลกทรอนกส เรยกวา SMTP โดยโพรโตคอล
สาหรบสรางจอเทอรมนลเสมอนชวยใหผใชสามารถตดตอกบเครองโฮสตทอยไกลออกไปโดยผาน
อนเทอรเนต และสามารถทางานไดเสมอนกบวากาลงนงทางานอยทเครองโฮสตนน โพรโตคอลสาหรบการ
จดการแฟมขอมลชวยในการคดลอกแฟมขอมลมาจากเครองอนทอยในระบบเครอขายหรอสงสาเนา
แฟมขอมลไปยงเครองใดๆกได โพรโตคอลสาหรบใหบรการจดหมายอเลกทรอนกสชวยในการจดสง
ขอความไปยงผใชในระบบ หรอรบขอความทมผสงเขามา
• การออกแบบโปรแกรม 1. ไมตองผาน Server ใหตดตอกนโดยตรง และสงแบบ Multicast (สงเฉพาะเครองทอยในกลม
เดยวกน) การรบสงไฟล แบบ point to point โดยการใช Protocol UDP Multicast ใชกลม
Class D IP Address 225.0.0.1 Port 10009 มการออก Class ตางไดดงน
Class MulticastApp เปน Class ทใชในการ Run โปรแกรมเรมตน
11 of 25
Interface MulticastChatListener คอยดกรอเหตการณทเกดขน
Class MulticastView เปนสวนออกแบบ GUI
12 of 25
Class MulticastChat เปนสวนททาหนาทในการรบและสงขอมลในการสนทนา
Class FileSend ทาหนาทเกบ Object File ทจะตองสงหากนตอนสนทนา
13 of 25
2. ใช Server ในการสงขอมลเปนแบบ Broadcast (สมาชกทกเครองจะเหนขอความทคยกน)
การรบสงไฟลแบบ Point to Point โปรแกรมจะถกแยกออกเปนสองสวนดวยกนคอสวนททา
หนาทเปน Server : ผใหบรการ และสวนทเปน Client : รบบรการซงขอมลจะตองผาน Server
ทกครงทมการสนทนาหรอสงไฟลขอมล
14 of 25
Server : ทาหนาทใหบรการกบโปรแกรมสนทนาตวลกทจะตอง Connect เขามาและ
เกบขอมลเกยว User Name , Socket ท connect เขามาเพอทจะนาไปใช
ประโยชนในการตดตอสอสารกนภายหลง ซงตว Server นจะเปด Port รอให
บรการท Port ใดนนสามารถกาหนดไดท ServerConfig.properties โดยปกต
จะใช 10009 โปรแกรมจะประกอบไปดวย Class ดงน
Class ServerChatApp เปนตวททาหนา Run ของโปรแกรม Server
Class ServerChatView ทาหนาทเปน GUI
15 of 25
16 of 25
Class UserChat เปน Object ทจะใชเกบขอมล User Name และ Socket
Class ChatSocket ทาหนาทเปนตวกลางในการรบและสงขอความ ไฟลทสง
17 of 25
Client : ใชบรการตว Server เปนสวนตดตอกบผใชงานในการสนทนาและสงไฟลขอมล
ในการตดตอตองสงขอมลเกยว User Name ไปยง Server แลวถงจะสรางชอง
ทางการตดตอไวโดยม Class ตางๆดงน
Class ClientChatApp เปนตวทใช Run โปรแกรม
Class SendFile เปนตวทใชเรยกตอนกดป มทจะสงไฟลขอมล
18 of 25
Class ClientChatView ทาหนาทเปนสวน GUI ใชในการตดตอสนทนา
19 of 25
Class FileSendB เปนสวนทจะเกบขอมลของ File ทสงหากนเพอจะรอการบนทกออกไป
Class PrivateChat เปนสวนทใชในการสนทนากนแบบสวนตวคอสองตอสองคนอนจะ
ไมเหน Message นนๆ
20 of 25
• การทางานของโปรแกรม 1. แบบทไมตองผาน Server ใชสนทนาในวงแลนเดยวกน โปรแกรมชอ Multicast.jar
1.1 การ Sign In เขาใชงานตองใสชอคนทจะใชงานตรงชอง User Name จากนนกดป ม Sign
In
21 of 25
1.2 เมอ Sign In เสรจป มจะเปลยนเปน Sign Out แทนจะม Message แสดงใหเหนคนทม
การ Sign In เขามา Join กนและจะเหน User Name ทดานขวามอ
1.3 การสนทนากนกสามารถทาไดโดยปอนขอความแลวกดป ม Send ขอความกจะแพร
ออกไปยงทกคนท Chat อย
1.4 การสง File โดยใหเลอกชอของคนรบปลายทางกอนทจะสง File จากนนกดป ม Send File
จากนนจะม Dialog ขนมาใหเลอก File ทจะสงเมอสงขอมลนนไปถงปลายทางแลวจะม
ขอความแสดงใหเหนวาม File ขอมลเขามา
22 of 25
1.5 เมอผ รบปลายทางไดรบแลวกสามารถทจะบนทกออกไปยงสอตางๆ ไดโดยเลอกยง Tab
File Receive จะเหนชอ File ใหเลอกตรงชอ File นนแลวกดป ม Save as จะเหน Dialog
Save File ขนมาใหเลอกชอไฟลและ Path
2. แบบทตองผาน Server ใชสนทนาตางวงแลนจะแบงโปรแกรมออกเปนสองสวนคอ Server กบ
Client
2.1 ตองทาการ Start Service ทตว Server โดยกดทป ม Start Server (ServerChat.jar)
23 of 25
2.2 Run Client (ClientCaht.jar)
2.3 ทาการ Sign In โดยใหกาหนด Server Name / IP ตามดวย Port ทเปดรอทโปรแกรมฝง
Server และตองใส User Name จากนนกดป ม Sign In จากนนป มจะเปลยนเปน Sign
Out
2.4 เมอมคนอนท Sign In เขามากจะเหน Message บอกวามคน Sign In และแสดงชอทาง
ดานขวา
24 of 25
2.5 การสนทนากสามารถพมพขอความแลวกดป ม Send ไดเลยขอความกจะแพรไปทกคนท
Sign In อย
2.6 การสนทนาแบบสองตอสองโดยสามารถเลอกชอคนทจะสนทนาดวยแลวกดทป ม Private
จากนนนะเหนหนาตางสนทนาขนมาใหอกหนาตาง
2.7 การสง File ตองเลอกชอคนรบปลายทางกอนแลวคอยกดป ม Send File จากนนจะม
Dialog ขนมาใหเลอก File
25 of 25
2.8 เมอเลอกไฟลไดแลวโปรแกรมกจะสงไปยงผ รบปลายทางโดยจะมขอความบอกวาม File
สงมาให
2.9 การบนทกไฟลทสงมาไปยงสอตางๆ โดยไปท Tab Receive File จะเหนชอไฟลทเขามาให
ทาการเลอกตรงชอทตองการจะบนทกตอจากนนกใหกดป ม Save as กจะม Dialog Save
ขนมาใหเลอก File Name และ Path