ฉันกำลังพยายามส่งคำสั่งไปยังพอร์ต tcp โดยใช้netcat
และการตอบสนองไปป์
เมื่อฉันรันnetcat
และพิมพ์คำสั่งของฉันมันพิมพ์การตอบสนองอย่างถูกต้อง แต่เมื่อฉันส่งคำสั่งจากไพพ์มันจะส่งคำสั่งอย่างถูกต้อง แต่ไม่พิมพ์การตอบสนอง
ดังนั้นวิธีนี้ทำงานอย่างถูกต้อง:
netcat localhost 9009
ขณะนี้เพิ่งส่งคำสั่ง แต่ไม่ตอบสนองการพิมพ์:
echo 'my_command' | netcat localhost 9009
ทำไม?
ฉันnetcat
จะพิมพ์ข้อความตอบกลับได้อย่างไร
OpenBSD netcat (Debian patchlevel 1.105-7ubuntu1)
รุ่น; และที่ปลายทางระยะไกลอยู่telegram-cli
ในเครื่องเดียวกัน
netcat
ได้รับ EOF ใน STDIN มันจะปิดซ็อกเก็ตทั้งสองด้านทันทีแทนที่จะปิดครึ่งและรอให้รีโมตปิดด้านข้าง หากsocat
เป็นตัวเลือกฉันขอแนะนำเป็นอย่างยิ่ง มีเพียงหนึ่งเดียวsocat
ดังนั้นคุณไม่มีปัญหาเรื่องความสะดวกในการพกพาเนื่องจากมีรสชาติที่แตกต่างกันหลายสิบแบบมันทำงานได้อย่างมีสติมากขึ้นและสามารถกำหนดค่าได้สูง