I am connecting to TCP/IP port in Asp.Net, basically i have attached a device on this port to which i am reading, it is working fine but on second time when tcp listener tries to start then it generates the above error. can any body guide me how can i get rid of this error here is my code that i am using to connect to TCP/IP port:
try { byte[] ipaddress = new byte[4]; string ip = ConfigurationManager.AppSettings["IP"].ToString(); string[] ips = ip.Split('.'); ipaddress[0] = (byte)Convert.ToInt32(ips[0]); ipaddress[1] = (byte)Convert.ToInt32(ips[1]); ipaddress[2] = (byte)Convert.ToInt32(ips[2]); ipaddress[3] = (byte)Convert.ToInt32(ips[3]); int portNumber = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]); tcpListener = new TcpListener(new IPAddress(ipaddress), portNumber); tcpListener.Start(); tcpClient = new TcpClient(); tcpClient.NoDelay = true; try { System.Threading.Thread.Sleep(60000); tcpClient.ReceiveTimeout = 10; tcpClient = tcpListener.AcceptTcpClient(); } catch (Exception ex) { tcpClient.Close(); tcpListener.Stop(); } NetworkStream networkStream = tcpClient.GetStream(); byte[] bytes = new byte[tcpClient.ReceiveBufferSize]; try { networkStream.ReadTimeout = 2000; networkStream.Read(bytes, 0, bytes.Length); } catch (Exception ex) { tcpClient.Close(); tcpListener.Stop(); } string returndata = Encoding.Default.GetString(bytes); tcpClient.Close(); tcpListener.Stop(); return returndata.Substring(returndata.IndexOf("0000000036"), 170); } catch (Exception ex) { if (tcpClient != null) tcpClient.Close(); tcpListener.Stop(); LogError("Global.cs", "ReceiveData", ex); ReceiveData(); }
when it comes on this line tcpListener.Start(); for second time then it generates that error "Only one usage of each socket address (protocol/network address/port) is normally permitted"