private void bPortCheck_Click( object sender, EventArgs e )
{
bPortCheck.Text = "Checking";
Enabled = false;
TcpListener listener = null;
try {
listener = new TcpListener( IPAddress.Any, ( int )nPort.Value );
listener.Start();
HttpWebRequest request = ( HttpWebRequest )WebRequest.Create( "http://www.utorrent.com/testport?plain=1&port=" + nPort.Value );
HttpWebResponse response = ( HttpWebResponse )request.GetResponse();
if ( response.StatusCode == HttpStatusCode.OK ) {
using ( Stream stream = response.GetResponseStream() ) {
if ( stream != null ) {
StreamReader reader = new StreamReader( stream );
string returnMessage = reader.ReadLine();
if ( returnMessage != null && returnMessage.StartsWith( "ok" ) ) {
MessageBox.Show( "Port " + nPort.Value + " is open!", "Port check success" );
return;
}
}
}
}
MessageBox.Show( "Port " + nPort.Value + " is closed. You will need to set up forwarding.", "Port check failed" );
} catch {
MessageBox.Show( "Could not start listening on port " + nPort.Value + ". Another program may be using the port.", "Port check failed" );
} finally {
if ( listener != null ) {
listener.Stop();
}
Enabled = true;
bPortCheck.Text = "Check";
}
}