0

私はNAudioを使用して、オーディオファイル.wavをあるPCから別のPCに正確に送信しています。

ネットワーク ストリーム経由でメッセージを送信しようとしましたが、コードの受信に問題があるため、メッセージが正しく送信されたかどうかを確認する方法がありません。

これが送信コードです。

public void StartConnection()
    {
        _connection = new TcpClient("localhost",1111);
        _stream = _connection.GetStream();
        SendFile(_stream,_waveStream);
    }

public void SendFile(NetworkStream StreamToWrite,WaveStream StreamToSend)
    {
        WaveFileWriter write = new WaveFileWriter(StreamToWrite,StreamToSend.WaveFormat);
        byte[] decoded = FromStreamToByte(StreamToSend);
        write.Write(decoded,0,decoded.Length);
        write.Flush();
    }

そして、ここに受信コードがあります

public void ListenConnection()
    {
        _listener = new TcpListener(IPAddress.Any,1111);
        _listener.Start();
        TcpClient receiver = _listener.AcceptTcpClient();
        _stream = receiver.GetStream();
    }

public void ReadFile(NetworkStream stream)
    {
        WaveFileReader read = new WaveFileReader(stream);
    }

readメソッドを呼び出すとread、バイト配列、オフセット、および長さが要求されるため、コードの受信を続行する場所に問題があります。しかし、なぜそれが配列を要求するのかは、データを受け取るだけなので、私には理解できません。

この方法をさらに進める方法についてのアドバイスReadFile

アップデート - -

デバッグ中に、WaveFileWriter で使用するために SendFile に渡されていた NetworkStream の長さが決定されていないことがわかりましたStream Does not Support Seek Operations。ただし、プロトタイプが任意のストリームを受け入れることができると言っているため、このエラーが発生する理由がわかりません。

4

1 に答える 1