Visual C#でTcpListenerとTcpClientを使った通信をするプログラムを組んでいます。

試作したプログラムをWinXPHomeで動かすと問題無いのですが、別のWinXPProだと次のようなエラーがでます。
プログラム側の工夫でこのエラーに対処したいのですが、どのようにすれば良いのでしょうか?
----- 環境 -----
WindowsXP Home : Visual Studio 2005 Express C#
WindowsXP Pro : Visual Studio 2005 Pro , 集中管理のシンクライアントPCです
----- エラーメッセージ -----
型 'System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。
場所 System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
場所 System.Security.CodeAccessPermission.Demand()
場所 System.Net.Sockets.Socket.Bind(EndPoint localEP)
場所 System.Net.Sockets.TcpListener.Start(Int32 backlog)
場所 System.Net.Sockets.TcpListener.Start()
場所 chat_prog1021.Form1.ServerStart(Object sender, EventArgs e)

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/10/30 15:40:17
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:ma-kanoh No.1

回答回数155ベストアンサー獲得回数4

ポイント60pt

ふつーに

・Windows ファイヤウォール

で止められているのでなければ、

なぜかWell Known ポート番号(0-1023)を避けると出来たりしませんか。

>集中管理のシンクライアントPCです

って言われると、そもそもネットワーク環境のほうが。。。

と思いますので、ネットワーク環境の内容も書いたほうがいいと思います。

id:mikan_iyokan

回答ありがとうございます。

ポートは8000とかを使ってます。

WindowsファイヤウォールはOFFになっているようです。

ネットワーク環境と言っても、一般学生の権限だと、プロパティも見れないので・・・。

詳しそうな先生が出張から帰ってきたら聞いてみようとは思っているのですが・・・。

2006/10/23 21:59:07
id:ma-kanoh No.2

回答回数155ベストアンサー獲得回数4

ポイント10pt

あ、えっと

>「集中管理のシンクライアントPCです」

と言われる場合は、ネットワーク環境をあえて特殊にしてあるはずです。

シンクライアントというは、その「もの」だけ接続できるようにしてあるはずですから。

ということでネットワーク環境を調べてみることをお勧めしてみました。

学生さんなら特に。学生のころは私の場合、ふつーにクラッキングしてましたから。今やったら犯罪言われかねないぐらいに。何百人ぐらいになりすましただろう。。。

  • id:mikan_iyokan
    プログラムのソースを書いておきます。
    ----- ServerStart -----
    private void ServerStart(object sender,EventArgs e)
    {
    try
    {
    // TcpListenerを使用してサーバを指定のポートで起動
    listener = new TcpListener(IPAddress.Parse(textBoxServerIPAddress.Text), int.Parse(textBoxServerPortNumber.Text));
    listener.Start();

    labelServerStatus.Text = "サーバを開始しました";

    // 別スレッドでクライアントからの通信を処理する部分を起動
    //serverThread = new Thread(new ThreadStart(ServerListen));
    //serverThread.Start();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
    textBoxMessageList.AppendText(ex.Message + "\r\n" + ex.StackTrace);
    }
    }

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません