2016-09-08 4 views
-2

.NET 2.0をターゲットにする以外の選択肢がないアプリケーションで作業しています。これはTcpListenerれるtcpClientを使用してソケット・アプリケーションであり、Iは、一端に、Windowsファイアウォール(ウィン7.0。)に必要なポートを開いている、私は接続を開始するためにTcpClient.Connect()メソッドを使用し、そして要求を検出するためにもう一方の端にTcpListener.Pending()メソッド。C#と.NET 2.0:TcpListener.Pending()は着信接続を認識しません

私が抱えている問題は、ペンディング()はサーバー側で真を返すことはありません。 Start()メソッドが呼び出されたことを確認しました。エラーは返されず、例外もスローされません。クライアント側では、try/catchの中でConnect()、Write()、Flush()、およびClose()(すべてvoid戻り型です)を使用しています。だから、クライアントの視点からは、すべてがうまく見えます。問題は、サーバーが接続要求を認識しないことです。そのため、クライアントが送信しているデータはサーバーに表示されません。

作品の機密性が非常に高いため、ソースリストを投稿することはできません。私は、この記述から、誰かがいくつかの可能な犯人を示唆することができるかどうか疑問に思っています。私が言ったように、私はファイアウォールのポートを開いた - 私は最初に "ターゲットマシンが積極的にを拒否したために接続できませんでした"しかし、ファイアウォールの問題を扱った後、すべてのエラーと例外がなくなったデータは流れません。

私はこれがソースリストのない厳しいものだと知っていますが、これまでにこのような問題が発生していて見栄えの良い場所を提案してもらえれば幸いです。

ありがとうございます。

+0

Pending()はどのようにサーバー側で書かれていますか?それはループ内にありますか、いつ、どのようにクライアント要求を受け入れますか? –

+0

質問にソースコードを追加することは常に可能です。ソースを新しいプロジェクトに分割し、そこで問題を再現してください。 – Brandon

答えて

-1

多分、「ホワイトリスト」がありますか?サーバーがクライアントを「ホワイトリストに入れる」必要があるかもしれませんか?

関連する問題