CAsyncSocket::Receive

เสมือน int รับ ( โมฆะ * lpBuf, int nBufLen, int nFlags = 0 );

ส่งกลับค่า

ถ้าไม่มีข้อผิดพลาดเกิดขึ้นรับส่งกลับจำนวนของไบต์ที่รับ ถ้าการเชื่อมต่อถูกปิด จะส่งกลับ 0 มิฉะนั้น ส่งกลับค่าของSOCKET_ERRORและสามารถเรียกข้อมูลรหัสข้อผิดพลาดเฉพาะ โดยการเรียกGetLastError ข้อผิดพลาดต่อไปนี้ใช้ฟังก์ชันนี้สมาชิก:

พารามิเตอร์

lpBuf

บัฟเฟอร์สำหรับข้อมูลขาเข้า?

nBufLen

ความยาวของlpBufเป็นไบต์?

nFlags

ระบุวิธีการที่ทำการโทร ในความหมายของฟังก์ชันนี้จะถูกกำหนด โดยตัวซ็อกเก็ตและพารามิเตอร์nFlags หลังถูกสร้างขึ้น โดยรวมมีค่าต่อไปนี้ด้วยตัวดำเนินการ c ++ :

หมายเหตุ

เรียกฟังก์ชันนี้สมาชิกจะได้รับข้อมูลจากซ็อกเก็ต ฟังก์ชันนี้จะใช้สำหรับการเชื่อมต่อกระแสหรือ datagram sockets และใช้ในการอ่านข้อมูลขาเข้า?

สำหรับ sockets ชนิดSOCK_STREAMข้อมูลมากเป็นอยู่ในปัจจุบันได้ถึงขนาดของบัฟเฟอร์ที่ระบุให้มีการส่งกลับ ถ้าซ็อกเก็ตได้ถูกกำหนดค่าสำหรับการต้อนรับในบรรทัดออกของแถบข้อมูล (ซ็อกเก็ตตัวเลือกSO_OOBINLINE) และออกของแถบข้อมูลยังไม่ได้อ่าน เฉพาะออกของแถบข้อมูลจะถูกส่งกลับ แอปพลิเคชันสามารถใช้ตัวเลือกSIOCATMARK IOCtlหรือOnOutOfBandDataเพื่อตรวจสอบว่า ข้อมูลใด ๆ เพิ่มเติมออกของวงยังคงถูกอ่าน ?

สำหรับ datagram sockets ข้อมูลถูกแยกจาก datagram enqueued ตัวแรก ถึงขนาดของบัฟเฟอร์ที่ระบุให้ ถ้าเดตาแกรมมีขนาดใหญ่กว่าบัฟเฟอร์ที่ระบุให้ บัฟเฟอร์จะถูกกรอกข้อมูล ด้วยส่วนแรกของเดตาแกรม ข้อมูลมากเกินจะหายไป และรับส่งกลับค่าของSOCKET_ERRORกับWSAEMSGSIZEการตั้งค่ารหัสข้อผิดพลาด ถ้าไม่มีขาเข้ามีข้อมูลที่ซ็อกเก็ต ค่าเป็นSOCKET_ERRORจะถูกส่งกลับ ด้วยรหัสข้อผิดพลาดการตั้งค่าWSAEWOULDBLOCK ฟังก์ชันการเรียกกลับOnReceiveคุณสามารถใช้เพื่อกำหนดว่าเมื่อเข้ามาเพิ่มเติมข้อมูล?

ถ้าซ็อกเก็ตชนิดSOCK_STREAMและด้านระยะไกลถูกปิดการเชื่อมต่ออย่างสิ้นเชิงระบบ การรับจะสมบูรณ์ทันที ด้วย 0 ไบต์ที่รับ ถ้าการเชื่อมต่อถูกตั้งค่าใหม่รับจะล้มเหลว ด้วยข้อผิดพลาดWSAECONNRESET?

ภาพรวม CAsyncSocket |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)

ดูเพิ่มเติมnbspCAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send(&N)

Index