Posted on February 12, 2015, 7:08 pm By romanvas
Правильное решение – использовать асинхронное соединение. Один из вариантов –
TcpClient.BeginConnect.
Пример (взят с https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.connect%28v=vs.110%29.aspx):
public static void DoBeginConnect1(string host, int port) { // Асинхронное соединение к серверу TcpClient t = new TcpClient(AddressFamily.InterNetwork); IPAddress[] remoteHost = Dns.GetHostAddresses(host); connectDone.Reset(); Console.WriteLine("Establishing Connection to {0}", remoteHost[0]); t.BeginConnect(remoteHost[0], port, new AsyncCallback(ConnectCallback), t); // Ждём здесь окончания процесса соединения. connectDone.WaitOne(); Console.WriteLine("Connection established"); }
No comments yet Categories: С# Tags: asynccallback, c#, client, tcpclient, TcpClient.Connect, асинхронное соединение, подвешивать, программа