C# เกี่ยวกับการใช้งาน socket ในการรับส่งข้อมูล

สวัสดีครับพี่ๆชาวพันทิพ คือผมไม่รู้และไม่เคยเรียนเกี่ยวกับพวก network เลยโง่มากๆเรื่องนี้
ผมเลยจะทดลองทำโปรแกรมรับส่งข้อมูลโดยใช้ socket แต่ผมติดปัญหาตรง เวลาเตรียมช่องทางรับข้อมูลจากเครื่อง Client ที่ผมเตรียมไว้ 5 เครื่อง
โดยใช้โค้ดนี้ socket .Listen(5); ทีนี้เมื่อเตรียมไว้ 5 ช่องผมก็ต้องให้ Client มัน Connect มาที่เซิฟเวอร์เรา 5 เครื่องใช่ไหมครับ
ในโค้ดฝั่งเซิฟเวอร์ผมใช้โค้ดนี้เป็นตัวรับ

Socket[] acctest = new Socket[5];

for(i=0;i<5;i++){
acctest = socket .Accept();
}
แต่มันติดปัญหาตรงที่ถ้าเกิดว่าเราจะให้เครื่อง Client  มันเชื่อมต่อแค่ 3 เครื่อง มันจะไปค้างตรง  acctest = socket .Accept();
ผมเข้าใจว่าฝั่งเซิฟเวอร์มันรอการ Connect จากเครื่อง Client  เครื่องที่ 4 อยู่
ผมเลยอยากถามพี่ๆว่า ผมจะทำยังไงให้เครื่องเซิฟเวอร์มันรันต่อไปได้ถึงแม้จะมี Client แค่ 2 หรือ 3 เครื่อง

ขอบคุณครับ ผมอาจพิมพ์งงๆหน่อยเพราะไม่รู้ว่าจะอธิบายปัญหานี้ยังไง ถ้างงคำถามผมตรงไหนบอกได้นะครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
ตรง acctest= socket .Accept();
มันจะรอ client connect มา

ให้ start new thread เพื่อทำงานกับ acctest จะได้ไม่โดนบล๊อก

ดูตัวอย่าง https://stackoverflow.com/questions/13996735/socket-programming-server-clients-and-thread-usage
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่