2017-01-11 5 views
-1

Server.csを許可しますメッセージを受信または送信できません。TCPサーバのみ1クライアント

I CANT portforward。私はIPアドレスのHamachiを使用しています。クライアントとサーバーの両方が自分のネットワークに接続されており、Hamachi IPアドレスを使用しています。私はPDA Netを使って私のPCからインターネットに接続しています。

サーバーには接続が全く表示されません。また、サーバーはメッセージを受信しません。現在のところ、サーバーだけがメッセージを送信でき、受信できるのはそのメッセージだけです。

私は全くエラーが発生していないので、ネットワーキングで初めてこの問題を解決する方法はわかりません。

+0

はhastebinへのあなたのリンクの両方が 'クラスClient'のための源であるが、それはOKですとにかくここにコードを実際に投稿する必要があるからです。良い回答を得るには、良い質問をしてスタックオーバーフローを提供するのが最善です[この記事:http://stackoverflow.com/help/how-to-ask](http://stackoverflow.com/help/how- to-ask)を使用して、開始に役立てることができます。 – clarkitect

+0

合計が200行以上あるため、ここにコードを置くことはできません。 それは大きなものになるだろう。また、私は問題がどこで始まりどこで終わるのか分からない。 私は質問をすることに関する情報を読んだので、これがコードを提供する最良の方法だと思う。 – DOTCreeper

答えて

1

最初にTcpListenerを作成し、StartLis()にはBeginAcceptTcpClientを呼び出します。しかし、AcceptTCPClientでは、を新規作成します。TcpListenerBeginAcceptTcpClientは呼び出されません。

あなたは、接続ごとに新しいリスナーを作成する必要はありませんが、あなたは再びBeginAcceptTcpclientを呼び出す必要があります:

private void AcceptTCPClient(IAsyncResult ar) 
{ 
    TcpListener Lis = (TcpListener)ar.AsyncState; 

    Clients.Add(new ServerClient(Lis.EndAcceptTcpClient(ar))); 

    StartLis(); // this will call BeginAcceptTcpClient again 
} 
+0

ありがとう、魅力のように働いてくれて、もう一度やり直すのを防ぐのに十分な情報を私に提供しました:D – DOTCreeper

関連する問題