World: r3wp
[!REBOL3 Schemes] Implementors guide
older newer | first last |
Steeve 10-Jan-2010 [834] | ahah |
Pekr 10-Jan-2010 [835] | we can change it back ... |
Graham 10-Jan-2010 [836x2] | the above was a joke! please ignore |
reverse lookups http://cr.yp.to/djbdns/intro-dns.html | |
Steeve 10-Jan-2010 [838x2] | IIRC we need UDP to do a DNS request. |
So that we can't currently | |
Graham 10-Jan-2010 [840] | Yeah .. just did a packet trace and it's all UDP |
Pekr 10-Jan-2010 [841] | R3 does not contain UDP in networking device low level code? |
Steeve 10-Jan-2010 [842] | not yet |
Graham 10-Jan-2010 [843x3] | Steeve, what's the algorithm for reading data from a port when you don't know how much data is coming down? |
Does each arrival of data trigger a 'read event? | |
and does it append to port/data ? | |
Pekr 10-Jan-2010 [846] | some internals on how low level networking code works - http://www.rebol.net/wiki/TCP_Port_Details |
Steeve 10-Jan-2010 [847] | yep graham |
Graham 10-Jan-2010 [848x2] | # Setup the IO-request data and length fields. Data is the buffer tail position. Length is the buffer space available from above. Clear the actual field. |
so it does an append | |
Steeve 10-Jan-2010 [850] | but don't forget to execute a [read port] each time you received a packet , to be able to receive the futher one. |
Graham 10-Jan-2010 [851] | so you need to do a read port inside the read event? |
Steeve 10-Jan-2010 [852] | yep |
Graham 10-Jan-2010 [853] | all this word overloading drives me crazy! |
Steeve 10-Jan-2010 [854] | packet are append to port/data but the index is not moved |
Graham 10-Jan-2010 [855x2] | eh? |
so how to read until there is no more data ? | |
Steeve 10-Jan-2010 [857] | no "eh?" me !!! :-) |
Graham 10-Jan-2010 [858] | so the index is used by ?? |
Steeve 10-Jan-2010 [859] | there is no way to know how much packets can be received. Your protocol has to send this info, if not you're tricked |
Pekr 10-Jan-2010 [860] | why should every data be read first? Why is not 'read even triggered on new data arrival = change of buffer size? |
Steeve 10-Jan-2010 [861] | actually the read function ask to the server to send the next packet to the client, if any. You may receive a packet (event read triggered) or not. |
Graham 10-Jan-2010 [862x3] | Do we need to clear the port data after a read ? |
or before a read ? | |
eg. copy port/data clear port/data read port ? | |
Steeve 10-Jan-2010 [865x2] | you do as you want |
the packet is added to port/data | |
Graham 10-Jan-2010 [867] | so if we copy port/data read port copy port/data .. we will get duplicate data ? |
Steeve 10-Jan-2010 [868] | yes |
Graham 10-Jan-2010 [869x2] | ok. |
so no more data is appended to the port/data until we ask for it using a read port | |
Steeve 10-Jan-2010 [871x2] | it's your duty to clear or remove/part data in the buffer |
yup | |
Graham 10-Jan-2010 [873x2] | My duty is clear ... |
so with a write port ... the buffer is filled with my write data, it gets sent, and then cleared by the tcp device | |
Steeve 10-Jan-2010 [875x4] | no |
write port data, can use any buffer | |
if you use the same buffer (ie port/data) for read and write, you may encounter some problems | |
i will not use the same buffer for read and write | |
Graham 10-Jan-2010 [879] | I'm sure I read that write port uses the port/data as its buffer |
Steeve 10-Jan-2010 [880x3] | no, the write function uses any buffer you want as parameter |
because it's a parameted | |
*parameter | |
Graham 10-Jan-2010 [883] | hm... I think we are not talking the same thing http://www.rebol.net/wiki/TCP_Port_Details says that the port/data is used by write |
older newer | first last |