私は、現在定義しているプログラムにユーザ定義のIPとポートにtelnetする機能を追加しようとしています。私は、サイト上の以前の質問から基本的なコードスニペットを得ました。私が抱えている問題は、tcpClient.Connectメソッドの引数にテキストフィールドを渡すことができないことです。パラメータフィールドにIPアドレスをハードコードするとコードは機能しますが、文字列変数を渡そうとするとtcpClient.Connectは機能せず、接続試行が失敗したというキャッチ(例外)MessageBoxが表示されます。文字列変数をtcpClient.Connectに渡す
私はtcpClient.ConnectメソッドのMSDNを見て、テキストボックスから文字列を渡すのが失敗しているのを見ていないので、引数として(文字列IPaddress、Int32)が必要であると述べています。ここで
は、プログラムのそのセクションのコードスニペットです:
int i = Convert.ToInt32(Port.Text);
String strIP = IP.Text;
using (TcpClient tcpClient = new TcpClient())
{
try
{
tcpClient.Connect(strIP, i);
MessageBox.Show("port Open", "Port Status", MessageBoxButtons.OK);
}
catch (Exception)
{
MessageBox.Show("Port Closed", "Port Status", MessageBoxButtons.OK);
//Console.WriteLine("Port closed");
}
}
_「必然的に失敗する」_という形では、有用な問題文ではありません。あなたの投稿を修正して問題を確実に再現する良い[mcve]が含まれるようにしてください(ヒント:文字列値をメソッドに渡すことが問題で、文字列がUIから戻ってきれば良い[mcve] UIのみ、文字列のみ)と、エラーメッセージの_exact text_と例外の完全なスタックトレースと、代わりにコードに実行させたいものを含めて、コードが何をするのかについての詳細な説明。 –
'IP.Text'とは何ですか?メソッドに接続するための引数として送信する前に値があることを確認してください。 – CodingYoshi
間違ったテキストボックスから読み取っている可能性があります。非常に内容にConsole.Writelineを使用してIPを書く。 – jdweng