有多少客户端可以连接到此服务器
本文关键字:服务器 连接 多少 客户端 | 更新日期: 2023-09-27 18:19:03
有多少客户端可以连接到这个服务器?
private void btnserverconect_Click(object sender, EventArgs e)
{
Form1_Load(sender, e);
}
private void Form1_Load(object sender, EventArgs e)
{
try {
server =
new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
//IPAddress local = IPAddress.Parse("127.0.0.1");
EndPoint destination = new IPEndPoint(IPAddress.Any, 8000);
server.Bind(destination);
server.Listen(5);
Thread wait = new Thread(wa);
wait.Start();
}
catch(Exception) {
MessageBox.Show("connection error !");
}
}
void wa()
{
label1.Text = "please wait...";
server = server.Accept();
label1.Text = "connect";
while (true) {
try {
byte[]by = new byte[100];
int n = server.Receive(by);
lstserver.Items.Add("client :" +
Encoding.ASCII.GetString(by, 0, n));
}
catch(Exception) {
}
}
}
看起来Accept()
只会被调用一次。
行后:
server = server.Accept();
侦听套接字不再被引用,因为server
变量现在指向与已连接的(一个)客户端通信的套接字。你也可以忽略来自该客户端的断开连接消息(当Socket.Receive()
返回0时)。
p。你试图更新我猜是一个列表框(lstserver
)从另一个线程比GUI线程,可能会导致一个异常被默默地忽略,而不是更新列表框。