Saya bekerja dengan NAudio untuk mengirim file audio .wav tepatnya dari satu komputer ke komputer lainnya.
Saya telah mencoba mengirim pesan melalui aliran jaringan tetapi saya tidak dapat memeriksa apakah pesan telah terkirim dengan benar atau tidak karena sejauh ini saya mengalami masalah dalam menerima kode.
Ini kode pengirimannya.
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();
}
dan ini kode penerimanya
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);
}
Sekarang saya mengalami kesulitan untuk melanjutkan penerimaan kode karena jika saya memanggil metode read
dari read
maka ia meminta array byte, offset dan panjang. Tetapi mengapa ia meminta sebuah array berada di luar jangkauan saya, karena ia hanya menerima data.
Ada saran tentang bagaimana saya harus melanjutkan lebih jauh dengan metode ReadFile
.
MEMPERBARUI---
Selama Debugging saya menemukan bahwa NetworkStream yang diteruskan ke SendFile untuk digunakan di WaveFileWriter belum menentukan panjangnya sehingga memberikan Stream Does not Support Seek Operations
. Namun saya tidak mengerti mengapa ia memberikan kesalahan ini karena prototipenya mengatakan ia dapat menerima Aliran apa pun.