Buffer
buffer_create() : ¹öÆÛ ID
ÅÖ ºó, »õ ¹öÆÛ¸¦ »ý¼ºÇÕ´Ï´Ù. »ý¼ºÇÑ ¹öÆÛÀÇ ID¸¦ ¹ÝȯÇÕ´Ï´Ù.
buffer_destroy(buffer) : void
ÇØ´ç ¹öÆÛ¸¦ Á¦°ÅÇϰí ÇÚµéÀ» ¸Þ¸ð¸®¿¡¼ ÇØ¹æ½Ãŵ´Ï´Ù.
ÀÌ ÇÔ¼ö´Â ´õ ÀÌ»ó »ç¿ëµÇÁö ¾ÊÀ» ¸ðµç ¹öÆÛ¿¡ ´ëÇØ È£ÃâµÇ¾î¾ß ÇÕ´Ï´Ù.
buffer_clear(buffer) : void
¹öÆÛÀÇ ³»¿ëÀ» ¸ðµÎ Áö¿ö¼, óÀ½ »ý¼ºµÇ¾úÀ» ¶§ ó·³ ÅÖ ºó »óÅ·Π¸¸µì´Ï´Ù.
buffer_size(buffer) : size
¹öÆÛÀÇ ÃÑ µ¥ÀÌÅÍ Å©±â¸¦ ¹ÝȯÇÕ´Ï´Ù.
buffer_bytes_left(buffer) : size
¹öÆÛ¸¦ ÀÐÀº °æ¿ì¿¡. ¹öÆÛÀÇ ÀбâÀ§Ä¡´Â ÀÐÀº ¹ÙÀÌÆ®¸¸Å Áõ°¡ÇÕ´Ï´Ù.
ÀÌ ÇÔ¼ö´Â ¾ÕÀ¸·Î ´õ ÀÐÀ»¼öÀÖ´Â ¹öÆÛÀÇ µ¥ÀÌÅÍ »çÀÌÁ ¹ÝȯÇÕ´Ï´Ù.
* (¹öÆÛÀÇ ÃÑ µ¥ÀÌÅÍ»çÀÌÁî - ¹öÆÛÀÇ ÀбâÀ§Ä¡)¸¦ ¹Ýȯ.
buffer_set_readpos(buffer, pos) : void
¹öÆÛÀÇ Àбâ À§Ä¡¸¦ »õ·Î ¼³Á¤ÇÕ´Ï´Ù.
¸¸¾à Àбâ À§Ä¡¸¦ 0 ¹Ì¸¸À¸·Î ¼³Á¤Çϰųª buffer_size(buffer) º¸´Ù Ãʰú·Î ¼³Á¤ÇÑ´Ù¸é, ÀбâÀ§Ä¡´Â 0À¸·Î ¼³Á¤µÇ°Å³ª buffer_size(buffer) ·Î ¼³Á¤µÉ°ÍÀÔ´Ï´Ù.
* buffer_get_readpos() °°Àº ÇÔ¼ö´Â ¾ø½À´Ï´Ù¸¸, ÇÊ¿äÇÏ´Ù¸é buffer_size(buffer) - buffer_bytes_left(buffer) ¸¦ ÇÏ¸é µÇ°Ú³×¿ä.
write_[xxx](buffer, real) : void
¹öÆÛÀÇ ³¡¿¡ »õ·Î¿î ½Ç¼ö µ¥ÀÌÅ͸¦ Ãß°¡ÇÕ´Ï´Ù.
¸Þ¸ð¸®ÀÇ È¿À²ÀûÀÎ »ç¿ëÀ» À§ÇØ ´ÙÀ½°ú °°Àº ¿©·¯ ÇÔ¼ö¸¦ Áö¿øÇÕ´Ï´Ù :
[win32 ±âÁØ]
write_ubyte Á¤¼ö(0~255), 1¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_byte Á¤¼ö(-128~127), 1¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_ushort Á¤¼ö(0~65535), 2¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_short Á¤¼ö(32768~32767), 2¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_uint Á¤¼ö(0~4294967295), 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_int Á¤¼ö(-2147483648~2147483647), 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_float À¯¸®¼ö(doubleº¸´Ü Á¤È®µµ°¡ ¶³¾îÁý´Ï´Ù.), 4¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
write_double À¯¸®¼ö(°ÔÀÓ¸ÞÀÌÄ¿°¡Áö¿øÇÏ´Â ¸ðµç ¼ýÀÚ¸¦Áö¿øÇÕ´Ï´Ù.), 8¹ÙÀÌÆ®¸¦ Â÷ÁöÇÕ´Ï´Ù.
´ç½ÅÀÌ ÇÔ¼ö¿¡°Ô °Ç³Ù ½Ç¼ö ÀÎÀÚ´Â ¹üÀ§¿¡ ¸Â°Ô Àû¿ëµÉ °ÍÀÔ´Ï´Ù.
¿¹¸¦ µé¾î write_byte ¿¡ 127º¸´Ù Å« ¼ýÀÚ¸¦ ÀÎÀÚ·Î ³Ñ±ä´Ù¸é, ¹öÆÛ´Â 127ÀÇ °ªÀ» °¡Áú°ÍÀÔ´Ï´Ù.
¶ÇÇÑ write_byte ¿¡ ¼Ò¼öÁ¡À» Æ÷ÇÔ½ÃŲ ¼ýÀÚ¸¦ ÀÎÀÚ·Î Áشٸé, ¹öÆÛ´Â ¼Ò¼öÁ¡À» ¹Ý¿Ã¸²ÇÑ Á¤¼ö°ªÀ» °¡Áú°ÍÀÔ´Ï´Ù.
ÀÌ¿¡ ´ëÇØ ¸î°¡Áö ¿¹¸¦ µéÀÚ¸é, write_short(buffer, 42.5) ¿Í write_short(buffer, 43.499) ·Î ÀÛ¼ºÇß´Ù¸é ¹öÆÛ¿¡ 43À¸·Î ±â·ÏµÇ¸ç, write_short(buffer, -2.5) ·Î ÀÛ¼ºÇßÀ» °æ¿ì¿¡´Â –3À¸·Î ±â·ÏµË´Ï´Ù.
write_string(buffer, string) : void
°ÔÀÓ¸ÞÀÌÄ¿ 8ÀÇ ºñÆ® ¹®ÀÚ¿·Î ÀÎÄÚµù µÉ ¹öÆÛ ȤÀº ¼ÒÄÏ(ÀÇ ¼Û½Å ¹öÆÛ) ³¡¿¡ ¹®ÀÚ¿ µ¥ÀÌÅ͸¦ Ãß°¡ÇÕ´Ï´Ù.
ÀÌ ÇÔ¼ö´Â ¾Æ¹«·± ¹®ÀÚ¿ÀÇ ±æÀÌ Á¤º¸³ª ±¸ºÐ±âÈ£¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â ±âÃÊÀûÀÎ ¹®ÀÚ¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
±×·¡¼ ´ç½ÅÀÌ ±×·¯ÇÑ °ÍµéÀ» ³Ö±â ¿øÇÑ´Ù¸é, Á÷Á¢ ³Ö¾îÁÖ¾î¾ß ÇÕ´Ï´Ù.
* ¿ªÁÖ 1 : ¹®ÀÚ¿À» ÀúÀåÇÏ·Á¸é write_byte °°Àº ÇÔ¼ö¸¦ ½á¼ ±æÀ̸¦ ¸ÕÀú ¸í½ÃÇØÁÖ¶ó´Â °Í °°³×¿ä.
* ¿ªÁÖ 2 :
39dll ¿¡¼± write_string ÇÑ ¹ø¿¡ read_string ÇÑ ¹øÀ¸·Î ´ëÀÀµÇ´Â ±¸Á¶ÀÔ´Ï´Ù. Áï, ¹®ÀÚ¿À» ¿©·¯ ¹ø Àü¼ÛÇÑ´Ù Ãĵµ °¢°¢ÀÌ ±¸ºÐµÇ¹Ç·Î, write_string ¼¼ ¹ø ÇßÀ¸¸é ÀоîµéÀÏ ¶§µµ ±×³É read_string ¼¼ ¹ø ÇØÁÖ¸é µÈ´Ù´Â À̾߱âÀÔ´Ï´Ù.
¹®Á¦´Â Faucet Networking ¿¡¼´Â ±×·¸Áö ¾Ê´Ù´Â °Ì´Ï´Ù. write_string À» ¸î ¹ø Çß°Ç µû·Î ±¸ºÐÇØÁÖÁö ¾Ê½À´Ï´Ù. ±×·¯´Ï ÀоîµéÀÏ ¶§µµ '¸î ¹øÂ°·Î ±â·ÏÇß³Ä'°¡ ¹®Á¦°¡ ¾Æ´Ï¶ó ¾ó¸¶³ª ÀоîµéÀÏÁö¸¦ ±¸Ã¼ÀûÀ¸·Î Àû¾îÁà¾ßÇÑ´Ù´Â °Ì´Ï´Ù. °£´ÜÈ÷ ¸»Çؼ, 39dll Àº AAAA, BB, CCC ¼ø¼·Î µ¥ÀÌÅͰ¡ ¿À¸é read_string ¼¼ ¹øÇÏ¸é µË´Ï´Ù. ÇÏÁö¸¸ FN¿¡¼´Â 4¸¸Å Àаí, 2¸¸Å Àаí, 3¸¸Å Àаí.. ÀÌ·± ½ÄÀ¸·Î 'Á÷Á¢ ¾ó¸¶³ª ÀÐÀ»Áö Á¤ÇØÁà¾ß' ÇÕ´Ï´Ù. ±ÍÂú´Ù¸é ±ÍÂúÀº ¹®Á¦Áö¿ä.
ÇØ°áÃ¥Àº? ±¸ºÐÇÏ´Â ¹®ÀÚ¸¦ µû·Î ³Ö´øÁö, ¾Æ´Ï¸é ¹®ÀÚ¿ ±æÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ ¹Ì¸® ³¢¿ö¼ º¸³»´Â °Ì´Ï´Ù. ù¹øÂ°´Â \ °°ÀÌ ±«»óÇÑ ¹®ÀÚ¸¦ ³Ö¾î¼ AAA\BB\CCC\ °°Àº ½ÄÀ¸·Î º¸³»¼, ÀÏ´Ü ÀÐÀ» ¼ö ÀÖ´Â ¸¸Å ÀÐÀº ´ÙÀ½ ±¸ºÐÀ» ÇÏ´Â ¹æ½Ä. ±Ùµ¥ '±×·³ ´ëü ¾ó¸¶³ª ÀоîµéÀÎ ´ÙÀ½ ±¸ºÐÇØ¾ß µÇ³ª'ÇÏ´Â ¹®Á¦°¡ »ý±é´Ï´Ù. ±×·¯´Ï Çö½ÇÀûÀ¸·Î Á» ¾µ¸¸Çغƴ ¹æ¹ýÀº µÎ¹øÂ°ÀÔ´Ï´Ù.
Áï,
length = string_length(text)
write_byte(length)
write_string(text)
...
Àü¼Û
¹Þ¾ÆµéÀÏ ¶§´Â,
length = read_byte()
text = read_string(length)
ÀÌ·± ½ÄÀ¸·Î ó¸®ÇÏ´Â °É »ý°¢Çغ¼ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ¸»ÇÏÀÚ¸é, 39dll ¿¡¼ ±âº»À¸·Î ÇØÁÖ´ø ÀÏÀ» FN ¿¡¼´Â Á÷Á¢ ÇØ¾ßµÈ´Ù´Â °Ì´Ï´Ù. È®ÀÎ °á°ú Á¤»ó ÀÛµ¿ÇÏ´Â ¹æ½ÄÀÔ´Ï´Ù.
write_buffer(Ÿ°Ù ¹öÆÛ, ¼Ò½º ¹öÆÛ) : void
¼Ò½º ¹öÆÛÀÇ Àüü ³»¿ë¹°À» º¹»çÇØ¼ Ÿ°Ù ¹öÆÛÀÇ ³¡¿¡ µ¡ºÙÀÔ´Ï´Ù.
¼Ò½º, ¹öÆÛ¿Í Ÿ°Ù ¹öÆÛ´Â ¼ÒÄÏÀ̳ª ¹öÆÛ ID¸¦ Àû¾î³ÖÀ» ¼ö ÀÖ½À´Ï´Ù.
Ÿ°ÙÀÌ ¼ÒÄÏÀ̸é, ÀÌ´Â ¼ÒÄÏÀÇ ¼Û½Å ¹öÆÛ¸¦ ÁöĪÇÏ°Ô µË´Ï´Ù.
¼Ò½º°¡ ¼ÒÄÏÀ̸é, ÀÌ´Â ¼ÒÄÏÀÇ ¼ö½Å ¹öÆÛ¸¦ ÁöĪÇÏ°Ô µË´Ï´Ù.
ÀÌ µ¿ÀÛÀº ¹öÆÛÀÇ Àбâ À§Ä¡¿¡ ¿µÇâÀ» ÁÖÁö ¾ÊÀ¸¸ç, Ç×»ó ¹öÆÛ ÀüüÀÇ ³»¿ë¹°À» º¹»çÇÕ´Ï´Ù.
write_buffer_part(Ÿ°Ù ¹öÆÛ, ¼Ò½º ¹öÆÛ, size) : º¹»çÇÑ µ¥ÀÌÅÍ »çÀÌÁî
¼Ò½º ¹öÆÛ¿¡¼ ÁöÁ¤ÇÑ »çÀÌÁîÀÇ µ¥ÀÌÅ͸¦ º¹»çÇØ¼ Ÿ°Ù ¹öÆÛÀÇ ³¡¿¡ µ¡ºÙÀÔ´Ï´Ù.
¼Ò½º, ¹öÆÛ¿Í Ÿ°Ù ¹öÆÛ´Â ¼ÒÄÏÀ̳ª ¹öÆÛ ID¸¦ Àû¾î³ÖÀ» ¼ö ÀÖ½À´Ï´Ù.
Ÿ°ÙÀÌ ¼ÒÄÏÀ̸é, ÀÌ´Â ¼ÒÄÏÀÇ ¼Û½Å ¹öÆÛ¸¦ ÁöĪÇÏ°Ô µË´Ï´Ù.
¼Ò½º°¡ ¼ÒÄÏÀ̸é, ÀÌ´Â ¼ÒÄÏÀÇ ¼ö½Å ¹öÆÛ¸¦ ÁöĪÇÏ°Ô µË´Ï´Ù.
write_buffer ¿Í´Â ´Þ¸®, ÀÌ ÇÔ¼ö´Â ¼Ò½º ¹öÆÛÀÇ ÇöÀç Àбâ À§Ä¡ºÎÅÍ µ¥ÀÌÅ͸¦ Àо°¡±â ½ÃÀÛÇÕ´Ï´Ù.
¸¸¾à ÀоîµéÀÌ·Á´Â µ¥ÀÌÅͺ¸´Ù ÀоîµéÀÏ µ¥ÀÌÅͰ¡ Àû´Ù¸é, ÀоîµéÀÏ ¼ö ÀÖ´Â ºÎºÐ±îÁö¸¸ Ãß°¡µË´Ï´Ù.
½ÇÁ¦·Î º¹»çµÈ ¹ÙÀÌÆ® ¼ö°¡ ¹ÝȯµË´Ï´Ù.
read_[xxx](buffer) : real
¹öÆÛ·ÎºÎÅÍ ÁöÁ¤ÇÑ ÇüÅ·Π°ªÀ» ÀоîµéÀ̵Ç, ÇöÀç Àбâ À§Ä¡ºÎÅÍ Àб⠽ÃÀÛÇÕ´Ï´Ù.
°ªÀ» ÀÐ°í ³ª¸é ±×¸¸Å Àбâ À§Ä¡°¡ À̵¿ÇÏ°Ô µË´Ï´Ù.
¸¸¾à ÀоîµéÀÏ ¸¸Å µ¥ÀÌÅͰ¡ ¹öÆÛ¿¡ ³²¾ÆÀÖÁö ¾ÊÀ¸¸é, ¹Ýȯ °ªÀº Á¤ÀǵÇÁö ¾ÊÀ¸¸ç, Àбâ À§Ä¡´Â ¹öÆÛÀÇ ³¡À¸·Î ¼³Á¤µË´Ï´Ù.
¸¸¾à ¹öÆÛ°¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é, 0ÀÌ ¹ÝȯµË´Ï´Ù. °¡´ÉÇÑ µ¥ÀÌÅÍ Á¾·ù¿¡ ´ëÇØ¼± write_[xxx] ¸¦ ÂüÁ¶Çϼ¼¿ä.
read_string(buffer, size) : string
¹öÆÛ·ÎºÎÅÍ ÁöÁ¤ »çÀÌÁй®ÀÚ¸¦ Àоîµé¿© ¹®ÀÚ¿·Î ¹ÝȯÇÕ´Ï´Ù.
¹öÆÛÀÇ ÇöÀç Àбâ À§Ä¡ºÎÅÍ Àб⠽ÃÀÛÇÕ´Ï´Ù.
¹®ÀÚ¸¦ ÀоîµéÀÎ ¸¸Å Àбâ À§Ä¡°¡ À̵¿ÇÏ°Ô µË´Ï´Ù.
¸¸¾à ÀоîµéÀÏ ¸¸Å µ¥ÀÌÅͰ¡ ¹öÆÛ¿¡ ³²¾ÆÀÖÁö ¾ÊÀ¸¸é, ¹ÝȯµÇ´Â ¹®ÀÚ¿Àº ¿äûÇÑ °Í º¸´Ù ª°Ô µÇ¸ç Àбâ À§Ä¡´Â ¹öÆÛÀÇ ³¡À¸·Î ¼³Á¤µË´Ï´Ù.
¸¸¾à »çÀÌÁî°¡ À½¼öÀÏ °æ¿ì, ÅÖ ºó ¹®ÀÚ¿ÀÌ ¹ÝȯµÇ¸ç ¹öÆÛÀÇ Àбâ À§Ä¡´Â º¯ÇÏÁö ¾Ê½À´Ï´Ù.