เมื่อใช้โปรโตคอล TCP หากคุณต้องการสร้างแอปพลิเคชันไคลเอ็นต์ คุณต้องระบุชื่อหรือที่อยู่ IP ของเซิร์ฟเวอร์ พอร์ตการสื่อสารของแอปพลิเคชันจะตรวจสอบข้อความที่ส่งโดยอีกฝ่ายอย่างระมัดระวังตลอดเวลา ซึ่งเป็นการรับประกันการเชื่อมต่อที่เชื่อถือได้ของระบบ เมื่อการเชื่อมต่อเกิดขึ้น ฝ่ายใดฝ่ายหนึ่งสามารถส่งและรับข้อมูลผ่าน SendData และแยกข้อมูลของตนเองผ่าน GetData เมื่อส่งข้อมูล คุณต้องตั้งค่าแอตทริบิวต์ LocalPort ของไคลเอ็นต์ก่อน เซิร์ฟเวอร์จะต้องตั้งค่าแอตทริบิวต์ RemoteHost เป็นที่อยู่ Ethernet ของไคลเอ็นต์ ตั้งค่าที่อยู่พอร์ตเดียวกันกับแอตทริบิวต์ LocalPort ของไคลเอ็นต์ และเริ่มส่งข้อความด้วยวิธี SendData ไคลเอนต์แยกข้อมูลที่ส่งผ่านเหตุการณ์ DataArrival ในเหตุการณ์ GetData การควบคุม Winsock ช่วยให้คอมพิวเตอร์ในระบบเชื่อมต่อกับคอมพิวเตอร์ระยะไกลโดยใช้โปรโตคอล UDP หรือ TCP ทั้งสองโปรโตคอลสามารถสร้างแอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์ได้
เมื่อใช้ตัวควบคุม Winsock ทั้งสองฝ่ายในการสื่อสารจำเป็นต้องเลือกโปรโตคอลเดียวกัน โปรโตคอล TCP เหมาะสำหรับการส่งไฟล์ข้อมูลความจุขนาดใหญ่ที่ต้องการการรับประกันความปลอดภัย ในขณะที่โปรโตคอล UDP เหมาะสำหรับสถานการณ์ที่คุณต้องการสื่อสารกับผู้ใต้บังคับบัญชาจำนวนมากแยกกัน หรือเมื่อมีการเชื่อมต่อจำนวนมากและต่างกันตามเวลา โดยเฉพาะอย่างยิ่งเมื่อ ปริมาณข้อมูลมีขนาดเล็ก คุณสามารถใช้เมธอด Winsock1.PRotocol=sckTCPProtocol เมื่อตั้งค่า ขั้นแรก ให้ค้นหาชื่อคอมพิวเตอร์ของคุณและเพิ่มลงในคุณสมบัติ LocalHost ของ Winsock
เมื่อสร้างแอปพลิเคชัน คุณต้องพิจารณาก่อนว่าคุณกำลังสร้างแอปพลิเคชันไคลเอนต์หรือบริการเซิร์ฟเวอร์ เฉพาะเมื่อแอปพลิเคชันเซิร์ฟเวอร์ที่สร้างขึ้นเริ่มทำงานและเข้าสู่สถานะการฟัง แอปพลิเคชันไคลเอนต์จะเริ่มสร้างการเชื่อมต่อและเข้าสู่สถานะการสื่อสารปกติ . ผู้เขียนได้สร้างแอปพลิเคชันขึ้นมาซึ่งมีฟังก์ชันคือเมื่อเมาส์ของลูกค้าเคลื่อนที่ แอปพลิเคชันเซิร์ฟเวอร์จะสามารถแสดงตำแหน่งของเมาส์แบบเรียลไทม์ได้
ต่อไปนี้เป็นวิธีสร้างแอปพลิเคชันเซิร์ฟเวอร์:
1. สร้างไฟล์ EXE มาตรฐานใหม่
2. เพิ่มการควบคุม Winsock;
3. เพิ่มรหัสต่อไปนี้:
ไพรเวทซับฟอร์มโหลด()
tcpServer.LocalPort=1001
tcpServer.Localhost=เซิร์ฟเวอร์
tcpServer.remotePort=1002
tcpServer.Localhost=klint
tcpServer ฟัง
สิ้นสุดย่อย
'ตรวจสอบการเชื่อมต่อ
PrivateSubtcpServerConnectionRequest (ByValrequestIDAsLong)
IftcpServer.State < > sckClosed จากนั้น
tcpServer ปิด
tcpServer.AcceptrequestID
สิ้นสุดย่อย
'ส่งข้อมูล.
PrivateSubfrmservermonsemove (x, y)
tcpServer.SendDatax&str(x)
tcpServer.SendDatay&str(y)
สิ้นสุดย่อย
วิธีสร้างแอปพลิเคชันของลูกค้าคือ:
1. สร้างไฟล์ EXE มาตรฐานใหม่
2. เพิ่มการควบคุม Winsock;
3. เพิ่มกล่องข้อความสองกล่อง - txtx และ txty;
4. เพิ่มรหัสต่อไปนี้:
ไพรเวทซับฟอร์มโหลด()
tcpServer.LocalPort=1002
tcpServer.Localhost=klint
tcpServer.remotePort=1001
tcpServer.Localhost=เซิร์ฟเวอร์
tcpServer ฟัง
สิ้นสุดย่อย
'ตรวจสอบการเชื่อมต่อ
PrivateSubtcpklintConnectionRequest
(โดย ValrequestIDAsLong)
Iftcpklint.State<>sckClosedแล้ว
tcpklint.ปิด
tcpklint.AcceptrequestID
สิ้นสุดย่อย
รับข้อมูล
PrivateSubtcpClientDataArrival
(ByValbytesTotalAsLong)
DimstrDataAsString
tcpklint.GetDatastrData
ifleft(strData,1)=Xแล้ว
txtx.Text=strData
อื่น
txty.Text=strData
สิ้นสุด
สิ้นสุดย่อย
รูทีนข้างต้นใช้การสื่อสารแบบจุดต่อจุดที่เรียบง่าย ด้วยการปรับเปลี่ยนเล็กน้อยบนพื้นฐานนี้ ระบบการสื่อสารเชิงโต้ตอบ AA เครือข่ายคอมพิวเตอร์แบบเรียลไทม์ที่ซับซ้อนสามารถสร้างขึ้นสำหรับการควบคุม การจำลองกราฟิก ฯลฯ Winsock ใน VB ให้วิธีการส่งข้อมูลแบบง่ายแก่เรา ช่วยให้เราบรรลุการสื่อสารเครือข่ายแบบจุดต่อจุดได้อย่างง่ายดาย
-