 |
|
สวัสดีครับ คือผมไม่รู้และไม่เคยเรียนเกี่ยวกับพวก 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 เครื่อง
โค้ดฝั่งเซิฟเวอร์
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket .Bind(new IPEndPoint(IPAddress.Parse("***.***.*.**"), 2000));
socket .Listen(5);
Socket[] acctest = new Socket[5];
for (int i = 0; i < 5; i++)
{
acctest = socket .Accept();
}
โค้ดฝั่งเครื่อง Client
Socket sock= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("***.***.*.**"), 2000);
Socket .Connect(endPoint);
Tag : .NET, Win (Windows App), Console App, C#, VS 2017 (.NET 4.x), Windows
|
|
 |
 |
 |
 |
Date :
2018-04-13 05:22:59 |
By :
1206526422812560 |
View :
1703 |
Reply :
7 |
|
 |
 |
 |
 |
|
|
|
 |