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


¹öÆÛ·ÎºÎÅÍ ÁöÁ¤ »çÀÌÁŭ ¹®ÀÚ¸¦ Àоîµé¿© ¹®ÀÚ¿­·Î ¹ÝȯÇÕ´Ï´Ù.

¹öÆÛÀÇ ÇöÀç Àбâ À§Ä¡ºÎÅÍ Àб⠽ÃÀÛÇÕ´Ï´Ù.

¹®ÀÚ¸¦ ÀоîµéÀÎ ¸¸Å­ Àбâ À§Ä¡°¡ À̵¿ÇÏ°Ô µË´Ï´Ù.

¸¸¾à ÀоîµéÀÏ ¸¸Å­ µ¥ÀÌÅͰ¡ ¹öÆÛ¿¡ ³²¾ÆÀÖÁö ¾ÊÀ¸¸é, ¹ÝȯµÇ´Â ¹®ÀÚ¿­Àº ¿äûÇÑ °Í º¸´Ù ª°Ô µÇ¸ç Àбâ À§Ä¡´Â ¹öÆÛÀÇ ³¡À¸·Î ¼³Á¤µË´Ï´Ù.

¸¸¾à »çÀÌÁî°¡ À½¼öÀÏ °æ¿ì, ÅÖ ºó ¹®ÀÚ¿­ÀÌ ¹ÝȯµÇ¸ç ¹öÆÛÀÇ Àбâ À§Ä¡´Â º¯ÇÏÁö ¾Ê½À´Ï´Ù.