Hur ska jag använda läsfunktionen i TCP/IP?

Permalänk

Hur ska jag använda läsfunktionen i TCP/IP?

Hej!

Jag försöker att använda mig av GNU Octaves TCP/IP och där jag använder mig av kommandot tcp_read

Loadable Function: [data, count] = tcp_read (tcp, n, timeout) Read from tcp interface. tcp - instance of octave_tcp class. n - number of bytes to attempt to read of type Integer timeout - timeout in ms if different from default of type Integer The tcp_read() shall return number of bytes successfully read in count as Integer and the bytes themselves in data as uint8 array.

https://octave.sourceforge.io/instrument-control/function/tcp...

Problemet är att om jag ska läsa från en server, som har skickat data till mig, då vill jag läsa de data som finns att läsa. Men i detta fall vill kommandot tcp_read veta hur mycket data jag ska läsa. Problemet är att tcp_read är blockerande om man inte anger timeout.

Jag vill ha det som att min server skickar data -> till min klient, på begäran av klienten. Det har jag ordnat. Men jag vet inte hur mycket data som skickas från servern. Finns det något sätt för mig att lösa detta så att den data som servern skickar, är den data som jag också kommer att läsa?

Tror ni det skulle fungera att skicka först antalet data som ska skickas, innan man skickar allt?

Permalänk
Medlem

Tolkar det så här:
Parametern 'n' borde ange hur många bytes du max vill läsa. Hur många bytes du läste får du sedan veta i returvärdet count.