คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
ตรง acctest= socket .Accept();
มันจะรอ client connect มา
ให้ start new thread เพื่อทำงานกับ acctest จะได้ไม่โดนบล๊อก
ดูตัวอย่าง https://stackoverflow.com/questions/13996735/socket-programming-server-clients-and-thread-usage
มันจะรอ client connect มา
ให้ start new thread เพื่อทำงานกับ acctest จะได้ไม่โดนบล๊อก
ดูตัวอย่าง https://stackoverflow.com/questions/13996735/socket-programming-server-clients-and-thread-usage
▼ กำลังโหลดข้อมูล... ▼
แสดงความคิดเห็น
คุณสามารถแสดงความคิดเห็นกับกระทู้นี้ได้ด้วยการเข้าสู่ระบบ
C# เกี่ยวกับการใช้งาน socket ในการรับส่งข้อมูล
ผมเลยจะทดลองทำโปรแกรมรับส่งข้อมูลโดยใช้ 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 เครื่อง
ขอบคุณครับ ผมอาจพิมพ์งงๆหน่อยเพราะไม่รู้ว่าจะอธิบายปัญหานี้ยังไง ถ้างงคำถามผมตรงไหนบอกได้นะครับ