U E D R S I H C RSS
ID
Password
Join
์‚ด์•„๊ฐ„๋‹ค๋Š” ๊ฒƒ์€ ๋ณ€ํ™”ํ•จ์„ ๋œปํ•˜๊ณ , ๋ณ€ํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์„ฑ์ˆ™ํ•จ์„ ๋œปํ•˜๊ณ , ์„ฑ์ˆ™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋Š์ž„์—†์ด ์ƒˆ๋กœ์šด ์ž๊ธฐ๋ฅผ ์ฐฝ์กฐํ•ด ๊ฐ„๋‹ค๋Š” ๋œป. โ€•H.B.

์žก๋‹ด #

  • ์ž์ž‘์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ACE_Reactor์™€์˜ ์—ฐ๊ณ„๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ํ™”์ผ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋”ํ• ๋‚˜์œ„์—†์ด ํŽธํ•œ ํ•จ์ˆ˜๋„ค์š”. ๋งˆ์น˜ ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๊ฒŒ๋‹ค๊ฐ€ ๋ฉ€ํ‹ฐํ”Œ๋ ›ํผ... :) )์—ฌ๊ธฐ์„œ๋Š” send()๋งŒ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ํ™”์ผ์˜ ๋‚ด์šฉ์„ ์ฝ๊ณ  ์‹ถ๋‹ค๋ฉด recv()๋ฅผ ์“ฐ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. (ACE_SOCK_Stream๊ณผ ๋™์ผํ•œ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค)
  • ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    1. ACE_FILE_Connector ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™”์ผ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ACE_FILE_IO๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด์„œ ํ™”์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    2. ์ƒ์„ฑ๋œ ACE_FILE_IO::position() ๋ฉ”์†Œ๋“œ๋กœ ํ˜„์žฌ ํ™”์ผ์ƒ์—์„œ ์ž…์ถœ๋ ฅ์„ ์‹คํ–‰ํ•  ๊ธฐ์ค€ ์œ„์น˜๋ฅผ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์•„๋ž˜ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์ƒˆ๋กœ ์ƒ์„ฑํ•œ ํ™”์ผ(๊ธธ์ด๊ฐ€ 0)์ธ๋ฐ ๊ทธ์ด์ƒ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ๊ทธ์‚ฌ์ด์˜ ๊ณต๊ฐ„์€ ๋ชจ๋‘ NULL(0๊ฐ’)์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. (์•„๋ž˜ ์˜ˆ์ œ์—์„œ๋Š” ์ฒ˜์Œ์—์„œ 512๋ฐ”์ดํŠธ๊นŒ์ง€๋Š” ๋ชจ๋‘ NULL๊ฐ’์ด ์ฑ„์›Œ์ง€๊ณ  ๋งˆ์ง€๋ง‰์— "text"๋ฌธ์ž์—ด์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค)
    3. ์ด์ œ ํ•ด๋‹น ์œ„์น˜์— ๋Œ€ํ•ด recv()/send()ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ฝ๊ณ  ์‹ถ๋‹ค๋ฉด recv(), ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด send()ํ•ฉ๋‹ˆ๋‹ค.
    4. ํ˜„์žฌ ํ™”์ผ ํฌ๊ธฐ๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ACE_FILE_IO::get_info()๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ACE_FILE_Info ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ์ด ๊ฐ์ฒด์˜ size_ ๋งด๋ฒ„๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์˜ˆ์ œ ์ฐธ์กฐ)
  • ACE_Reactor ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์—ฐ๊ณ„ํ•ด์„œ ์ž‘์—…ํ•  ๊ฒฝ์šฐ ์ƒ๋‹นํžˆ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ™”์ผ์ž…์ถœ๋ ฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด, ํ™”์ผ์„ ๋ถ„ํ• ํ•ด์„œ ๊ฐ๊ฐ ์†Œ์ผ“์œผ๋กœ ์ „์†กํ•˜๋Š” ์ž‘์—…๊ฐ™์€ ๊ฒฝ์šฐ ์•„์ฃผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ฃ )

์˜ˆ์ œ #

 1  #include <iostream>
 2  #include <stdlib.h>
 3
 4  #include "ace/FILE_Addr.h"
 5  #include "ace/FILE_Connector.h"
 6  #include "ace/FILE_IO.h"
 7
 8  using namespace std;
 9
10  int main(int argc, char *argv[])
11  {
12    ACE::init();
13
14    const char * tempfilename_ = ACE_OS::tempnam(NULL, "download"); // download99 ์~Y~@ ๊ฐ~Y์~]~@ ์~^~D์~K~\ ํ~Y~T์~]ผ๋ช~E์~]~D ๋ง~L๋~Sญ๋~K~H๋~Kค. 
15    ACE_FILE_Info fInfo_;
16     ACE_FILE_IO   fHandle_;
17    ACE_FILE_Connector  fCon_;
18
19    if (fCon_.connect (fHandle_, ACE_FILE_Addr(tempfilename_)) == -1) return -1;
20    fHandle_.position(512, SEEK_SET);
21    fHandle_.send("test", 4);
22    fHandle_.get_info( &fInfo_ );
23    printf("ํ~Y~T์~]ผํ~Aฌ๊ธฐ:%d\n", fInfo_.size_ );
24    fHandle_.close();
25
26    system("PAUSE");
27    return 0;
28  }

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.3547 sec