TcpClient 连接延迟
TcpClient Connect delay
我迷路了。当我想在我的 Form1 中编辑某些内容时,我必须在编辑后执行命令 Form1.show();所以我不编辑打开的表格,而是编辑一些看不见的新表格。我认为它在构造函数中的某个地方,但我不知道在哪里。
请帮助
Cli class:
public class Cli
{
Form1 frm;
TcpClient tcpclnt = new TcpClient();
public Cli()
{
}
public void Connect()
{
frm = new Form1();
try
{
frm.debug.Text = "Connecting";
tcpclnt.Connect("127.0.0.1", 8001);
// use the ipaddress as in the server program
frm.debug.Text = "Connected";
}
catch (Exception e)
{
frm.debug.Text=("Error..... " + e.StackTrace);
frm.Show();
}...
表格 1 class:
public partial class Form1 : Form
{
Cli client;
public int pocet = 0;
public Form1()
{
InitializeComponent();
client =new Cli();
Random rnd = new Random();
pocet = rnd.Next(23, 10000);
if (pocet % 2 == 1)
{
label1.Text = "HRAJEŠ";
}
else { label2.Text = "HRAJEŠ"; }
}...
没有无限循环,我认为你遇到了延迟,因为它要等到 TcpClient.Connect()
returns。
改为尝试异步连接。
frm.debug.Text = "Connecting";
var client = new TcpClient();
var result = client.BeginConnect("127.0.0.1", 8001, null, null);
var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));
if (!success)
{
throw new Exception("Failed to connect.");
}
// we have connected
frm.debug.Text = "Connected";
client.EndConnect(result);
我迷路了。当我想在我的 Form1 中编辑某些内容时,我必须在编辑后执行命令 Form1.show();所以我不编辑打开的表格,而是编辑一些看不见的新表格。我认为它在构造函数中的某个地方,但我不知道在哪里。 请帮助
Cli class:
public class Cli
{
Form1 frm;
TcpClient tcpclnt = new TcpClient();
public Cli()
{
}
public void Connect()
{
frm = new Form1();
try
{
frm.debug.Text = "Connecting";
tcpclnt.Connect("127.0.0.1", 8001);
// use the ipaddress as in the server program
frm.debug.Text = "Connected";
}
catch (Exception e)
{
frm.debug.Text=("Error..... " + e.StackTrace);
frm.Show();
}...
表格 1 class:
public partial class Form1 : Form
{
Cli client;
public int pocet = 0;
public Form1()
{
InitializeComponent();
client =new Cli();
Random rnd = new Random();
pocet = rnd.Next(23, 10000);
if (pocet % 2 == 1)
{
label1.Text = "HRAJEŠ";
}
else { label2.Text = "HRAJEŠ"; }
}...
没有无限循环,我认为你遇到了延迟,因为它要等到 TcpClient.Connect()
returns。
改为尝试异步连接。
frm.debug.Text = "Connecting";
var client = new TcpClient();
var result = client.BeginConnect("127.0.0.1", 8001, null, null);
var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));
if (!success)
{
throw new Exception("Failed to connect.");
}
// we have connected
frm.debug.Text = "Connected";
client.EndConnect(result);