public partial class ServerPanel : Form { private int portNum = 1337; private IPAddress ipAd = IPAddress.Any; private Thread listenThread; private TcpListener myList; private void startListen() { Socket s = myList.AcceptSocket(); listenStatusLog("Connection accepted from " + s.RemoteEndPoint); byte[] b = new byte[100]; int k = s.Receive(b); listenStatusLog("Recieved..."); for (int i = 0; i < k; i++) listenStatusLog(Convert.ToString(b[i])); ASCIIEncoding asen = new ASCIIEncoding(); s.Send(asen.GetBytes("The string was recieved by the server.")); listenStatusLog("\nSent Acknowledgement"); /* clean up */ s.Close(); myList.Stop(); } private void listenButtonStart_Click(object sender, EventArgs e) { try { /* Initializes the Listener */ myList = new TcpListener(ipAd, portNum); /* Start Listeneting at the specified port */ myList.Start(); listenStatusLog("The server is running at port "+portNum+" @ "+ipAd.ToString()+"..."); listenStatusLog("The local End point is:" + myList.LocalEndpoint); listenStatusLog("Waiting for a connection....."); // put listener on a new thread and start listenThread = new Thread(new ThreadStart(this.startListen())); // ---------------------------------- // the above line gives me the following error: // Method name expected // its referring to the "this.startListen()" part... // ---------------------------------- listenThread.IsBackground = true; listenThread.Start(); } catch (Exception err) { listenStatusLog("Error..... " + err.StackTrace.ToString()); } } public ServerPanel() { InitializeComponent(); listenPortBox.Text = portNum.ToString(); listenHostBox.Items.Clear(); } }