ການເອີ້ນກັບທີ່ຊື່ “will connect” ບໍ່ແມ່ນຫຼັກຖານວ່າ CFStream ຍັງຕັ້ງຄ່າໄດ້. ສັນຍາ CFReadStreamSetProperty ຂອງ Apple ກ່າວວ່າຕ້ອງສົມມຸດວ່າຄຸນສົມບັດຕ້ອງຖືກຕັ້ງກ່ອນເປີດ ເວັ້ນເສຍແຕ່ເອກະສານຂອງພວກເຂົາເອງກ່າວເປັນຢ່າງອື່ນ.

ສຳລັບການຮວມສະຕຣີມທີ່ມີຢູ່ແລ້ວ, ຮັກສາລຳດັບໄວ້ນຳກັນ: ສ້າງສະຕຣີມ/ຄູ່, ສ້າງວັດຈະນານຸກົມ SOCKS ທີ່ມີປະເພດຖືກຕ້ອງ, ຕັ້ງຄຸນສົມບັດທີ່ເໝາະສົມ ແລະ ກວດສອບຜົນ Boolean ຂອງມັນ, ແລ້ວລົງທະບຽນເຫດການ ແລະ ເລີ່ມເປີດ.

ຜົນ false ແມ່ນຄວາມລົ້ມເຫຼວຂອງການຕັ້ງຄ່າ, ບໍ່ແມ່ນເສັ້ນທາງທີ່ຕິດຕັ້ງແລ້ວ. ກວດສອບ ປະເພດສະຕຣີມ, ກະແຈຄຸນສົມບັດ, ປະເພດຄ່າວັດຈະນານຸກົມ ແລະ ວົງຈອນຊີວິດ ກ່ອນສືບຕໍ່.

ໃນການຈັດວາງທີ່ຂັບເຄື່ອນດ້ວຍເຫດການ, ການເປີດອາດເລີ່ມໄດ້ໂດຍບໍ່ສຳເລັດການເຈລະຈາ. ສັງເກດເຫດການສະຖານະ ແລະ ຂໍ້ຜິດພາດ ກ່ອນຖືວ່າການເຊື່ອມຕໍ່ນັ້ນໃຊ້ໄດ້.

ຖ້າໄລບຣາຣີອື່ນເປັນເຈົ້າຂອງສະຕຣີມ, ໃຊ້ hook ກ່ອນເປີດທີ່ມີເອກະສານຂອງມັນ. ການເອີ້ນກັບທີ່ມາພາຍຫຼັງເທົ່ານັ້ນອາດເປັນຈຸດຮວມທີ່ຜິດ. ການປ່ຽນຄຸນສົມບັດໃນສະຕຣີມທີ່ເປີດແລ້ວບໍ່ສາມາດຍ້າຍການເຊື່ອມຕໍ່ນັ້ນໄປ SOCKS ໄດ້.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ