์ด์๊ฐ๋ค๋ ๊ฒ์ ๋ณํํจ์ ๋ปํ๊ณ , ๋ณํํ๋ค๋ ๊ฒ์ ์ฑ์ํจ์ ๋ปํ๊ณ , ์ฑ์ํ๋ค๋ ๊ฒ์ ๋์์์ด ์๋ก์ด ์๊ธฐ๋ฅผ ์ฐฝ์กฐํด ๊ฐ๋ค๋ ๋ป. โH.B.
์ก๋ด #
- ์์์์ ์ ๋๋ค. ๋์ค์ ACE_Reactor์์ ์ฐ๊ณ๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- ํ์ผ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ํ๋๋ฐ ์์ด์ ๋ํ ๋์์์ด ํธํ ํจ์๋ค์. ๋ง์น ์์ผ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. (๊ฒ๋ค๊ฐ ๋ฉํฐํ๋ ํผ...
)์ฌ๊ธฐ์๋ send()๋ง ์ฌ์ฉํ๋๋ฐ, ํ์ผ์ ๋ด์ฉ์ ์ฝ๊ณ ์ถ๋ค๋ฉด recv()๋ฅผ ์ฐ์๋ฉด ๋ฉ๋๋ค. (ACE_SOCK_Stream๊ณผ ๋์ผํ ๋ฉ์๋๋ค์ ์ ๊ณตํฉ๋๋ค)
- ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ACE_FILE_Connector ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ฐ๊ฒฐํฉ๋๋ค. ACE_FILE_IO๊ฐ์ฒด๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด์ ํ์ผ ์ฝ๊ธฐ/์ฐ๊ธฐ๋ฅผ ํ ์ ์์ต๋๋ค.
- ์์ฑ๋ ACE_FILE_IO::position() ๋ฉ์๋๋ก ํ์ฌ ํ์ผ์์์ ์ ์ถ๋ ฅ์ ์คํํ ๊ธฐ์ค ์์น๋ฅผ ์ ํฉ๋๋ค. ์ด๋, ์๋ ์์ ์ ๊ฐ์ด ์๋ก ์์ฑํ ํ์ผ(๊ธธ์ด๊ฐ 0)์ธ๋ฐ ๊ทธ์ด์์ ์์น๋ฅผ ์ง์ ํ๋ฉด ๊ทธ์ฌ์ด์ ๊ณต๊ฐ์ ๋ชจ๋ NULL(0๊ฐ)์ผ๋ก ์ฑ์์ง๋๋ค. (์๋ ์์ ์์๋ ์ฒ์์์ 512๋ฐ์ดํธ๊น์ง๋ ๋ชจ๋ NULL๊ฐ์ด ์ฑ์์ง๊ณ ๋ง์ง๋ง์ "text"๋ฌธ์์ด์ด ์ถ๊ฐ๋ฉ๋๋ค)
- ์ด์ ํด๋น ์์น์ ๋ํด recv()/send()ํ๋ฉด ๋ฉ๋๋ค. ์ฝ๊ณ ์ถ๋ค๋ฉด recv(), ์ฐ๊ณ ์ถ๋ค๋ฉด send()ํฉ๋๋ค.
- ํ์ฌ ํ์ผ ํฌ๊ธฐ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด 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 }









![[http]](/wiki/imgs/http.png)
