Hallo,
ich frage mich gerade bei Boost.Asio und dem Senden von Daten per TCP/IP folgende Sache:
Wenn ein Programm zwei Dinge sendet, also zwei "write()" hintereinander, was passiert wenn das Zielprogramm nach seinem ersten "read()" Zeit vertrödelt (zB wegen Berechnung) und der Sender schon das zweite "write" ausführt, während das Zielprogramm aber noch nicht beim entsprechenden "read()" ist?
Chronologisch etwa so:
1 .Programm B: read1() -> blockierendes Warten auf A
2. Programm A: write1()
3. Programm B: read1() -> wird durchgeführt.
4. Programm A: write2()
5. Programm B: trödelt nach read1()...
Meine Frage ist, wie lange versucht Programm A ein "write()" ohne ein "read()" der Gegenseite bevor eine Exception geworfen wird?
Oder anders gefragt, wie lange darf ein "read()" hinausgezögert werden, sodass man das "write()" nicht verärgert?
Gibts da ein groben Anhaltspunkt in Millisekunden oder Sekunden? 1ms 10ms 100ms 500ms 1sek 5sek ?
ps: Die Frage bezieht sich auf das normale asio::write und asio::read also nicht auf die asynchronen Varianten.
Grüße
ich frage mich gerade bei Boost.Asio und dem Senden von Daten per TCP/IP folgende Sache:
Wenn ein Programm zwei Dinge sendet, also zwei "write()" hintereinander, was passiert wenn das Zielprogramm nach seinem ersten "read()" Zeit vertrödelt (zB wegen Berechnung) und der Sender schon das zweite "write" ausführt, während das Zielprogramm aber noch nicht beim entsprechenden "read()" ist?
Chronologisch etwa so:
1 .Programm B: read1() -> blockierendes Warten auf A
2. Programm A: write1()
3. Programm B: read1() -> wird durchgeführt.
4. Programm A: write2()
5. Programm B: trödelt nach read1()...
Meine Frage ist, wie lange versucht Programm A ein "write()" ohne ein "read()" der Gegenseite bevor eine Exception geworfen wird?
Oder anders gefragt, wie lange darf ein "read()" hinausgezögert werden, sodass man das "write()" nicht verärgert?
Gibts da ein groben Anhaltspunkt in Millisekunden oder Sekunden? 1ms 10ms 100ms 500ms 1sek 5sek ?
ps: Die Frage bezieht sich auf das normale asio::write und asio::read also nicht auf die asynchronen Varianten.
Grüße