public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
connect();
}
Socket m_clientSocket;
Timer timer_connection;
private void connect()
{
try
{
SocketAsyncEventArgs e = new SocketAsyncEventArgs();
m_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse(textBox1.Text.Trim());
int iPortNo = System.Convert.ToInt16(textBox2.Text.Trim());
IPEndPoint ipEnd = new IPEndPoint(ip, iPortNo);
//m_clientSocket.
e.RemoteEndPoint = ipEnd;
e.UserToken = m_clientSocket;
e.Completed += new EventHandler<SocketAsyncEventArgs>(e_Completed);
m_clientSocket.ConnectAsync(e);
timer_connection = new Timer();
if (timer_connection != null)
{
timer_connection.Dispose();
}
else
{
timer_connection = new Timer();
}
timer_connection.Interval = 2000;
timer_connection.Tick += new EventHandler(timer_connection_Tick);
timer_connection.Start();
}
catch (SocketException se)
{
label2.Text = "连接失败";
MessageBox.Show(se.Message);
}
}
private void e_Completed(object sender, SocketAsyncEventArgs e)
{
label2.Text = textBox1.Text.Trim() + ":" + textBox2.Text.Trim() + "成功!";
//WaitForServerData();
}
private void timer_connection_Tick(object sender, EventArgs e)
{
if (!m_clientSocket.Connected)
{
//MessageBox.Show("连接超时");
//m_clientSocket = null;
timer_connection.Stop();
label2.Text = "连接超时!";
}
}
}
}
TCP连接超时处理
最新推荐文章于 2024-07-27 16:46:25 发布