recv๋ recvAsync๋ ์ฌ์ฉ ์ด์ ๋ฅผ ์๊ฒ ์
recv๋ ์ธ์ ์ฌ์ง ๋ชจ๋ฅด๋๋ฐ ๊ณ์ ๋ธ๋กํน์ ํด๋ฒ๋ฆฌ๋ฉด ๋ญ๋น์ธ ๊ฑฐ์์? ๊ทธ๋์ ๋์ค์ recv๊ฐ ์ฌ ๋๋ง ์ฒ๋ฆฌํ๊ฒ ๋ค๋ ๊ฑด๋ฐ
send๋ ์ด์ฐจํผ ๋ด๊ฐ ๋ณด๋ด๋ ์์ ์ ์๊ณ ์๋๋ฐย ๊ตณ์ด sendAsync๋ฅผ ํ๋ ์ด์ ๊ฐ ๋จธ์?
๋ด๊ฐ send๋ฅผ ํธ์ถํ๋ค๊ณ ํด์ ๋ฌด์กฐ๊ฑด ๋ฐ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ ๋๋๊ฒ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ (๋์ถฉ ์ปค๋์์ ๋ฉ์ฑ ์ฟ ์ฑ ...)
๊ทธ๋ ๋ค๊ณ sendAsync์ ์ข์์ ์ด ๋จธ์?? ๋ญ send๋ ํ๋ฒ์ ๋ค ๋ณด๋ผ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ sendAsync๋ ๋๋ ์ ๋ณด๋ด๋๊ฑฐ์?ย
๋ ์ฐจ์ด๋ฅผ ๋ชจ๋ฅด๊ฒ ์ด..ย ย
Send๋ฅผ ํ๋ฉด์ receive๋ ์ผ๋ํ์ง ์์? ๋ ์ด๋ ๊ฒ ํด์๋ ๊ฑฐ ๊ฐ์์ ๋ฌผ์ด๋ณด๋๊ฑฐ์
๋น๋๊ธฐ๋ก recvํ๋ ๊ฒ์ ์ดํด๊ฐ ๋๋๋ฐ send๋ ๋ด๊ฐ ๋ณด๋ผ๋ ๋ฐ๋ก ํธ์ถํด์ ๋ณด๋ผ ์ ์๋๋ฐ ๊ตณ์ด ๋น๋๊ธฐ ํจ์๋ฅผ ์ฐ๋๊ฒ ์ดํด๊ฐ ์๊ฐ์ ๊ทธ๋ ค..
์ด๋ ๊ฒ ์ ๊ณ ๋ณด๋๊น send๋ง ํด๋๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ receive๊น์ง ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ send async๋ receive ๋๊ธฐ ์ํ๋ฅผ ๋ฐ๋ก ์์ํ ์ ์๊ฒ ํด์ฃผ๊ณ send๋ receive๋ ์ผ๋ํ์ง ์๊ณ ๊ทธ๋ฅ ๋ณด๋ด๊ธฐ๋ง ํ ๋ ์ธ ์ ์์ ๋ฏ ์ผ๋จ ๋ ์ค๋ฅด๋ ๊ฑด ์ด๊ฑฐ๋ค
send๋ recv๋๋ค ๋๊ธฐ ํจ์ ์ฐ๋๋ผ๋ ์ฐ๋ ๋๋ก ๋๋ ค๋ฒ๋ฆฌ๋ฉด ๊ด์ฐฎ์๊ฑฐ ์๋? send๋ฅผ ์ด๋ค๊ณ ํด์ receive๋ฅผ ๋ชปํ๋๊ฑด ์๋ํ ๋ฐ
๋ ๋ค ๋ง ์๊ฐํด๋ณด๋ receive Async๋ ๊ทธ๋ฅ send๋ฅผ ๋๊ธฐ๋ก ์คํํ๊ณ receive Async๋ฅผ ์คํํ๋ฉด ๋ ์ผ ๊ฐ๋ค, ๊ทธ๋ฌ๋ฉด ๋ณด๋ด๋ ํ์ผ์ ์ฉ๋์ด ํฐ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณผ ์ ์์ ๊ฒ ๊ฐ์๋ฐ ์ด๋ฐ ๊ฒฝ์ฐ์ send Async๊ฐ ์ ์ฉํ ๋ฏ? ๊ทผ๋ฐ ๋ ํ์ผ์ ์ฉ๋์ด ํฐ ๊ฒฝ์ฐ๋ ์์ง ์ฃผ๊ณ ๋ฐ์๋ณธ ์ ์ ์์ด์ ์ถ์ธก์ด์ผ
๋๊ธฐ ํจ์๋ฅผ ์ฐ๋๋ผ๋ ๋ค๋ฅธ ์ฐ๋ ๋๋ก ๋๋ ค๋ฒ๋ฆฐ๋ค๋ ๋ง์ Async ์ฐ๊ฒ ๋ค๋ ๋ง์ด๋ ๊ฑฐ์ ๋๊ฐ์ด ๋ค๋ฆฌ๋๋ฐ...
tcpip๋ฅผ๋ชจ๋ฅด๋์ฌ๋์ด๋ค send๋๋ชจ๋ฅด๋ฉด์์๋์ฒํ์ง๋ง ๊ธฐ๋ณธ์ ์ธ๊ฑธ์ง๋ฌธ์ผ๋ก๋์ฐ๊ณ ์์ด
๋ ๋ชจ๋ฅผ ์๋ ์์ง ์์ด๋ฆฌ ํ๋ฌ์
ํํ๋ง๋๋ฉด ํ๋ ์๋์์ง
๊ทธ๋ฅ ์๊ธฐ๋ ๋ชจ๋ฅด๋ ์ฌ๋์ด์๊ตฌ๋ง ใ ใ
๋ณด๋ธ๋ค๋๊ฒ์ด๋ค๋ด์ฉ์ธ์ง์๋ฉด ์ด๋ฐ๋ฉ์ฒญํ์ง๋ฌธ์ํ ์๊ฐ์์
์ ํ๊ฐ ๋์๋ ธ ๊ฒ์ด์ผ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ ๊ทธ๋ฐ๊ฑฐ์๊ตฌ๋.. ๊ณ ๋ง๋ค
tcpip ๋ก ๊ฐ์ ํ๊ณ / ์ฐ๋ฆฌ์ผ ์ฝ๋์์ send๋ฅผ ํธ์ถํ๋ฉด ๊ทธ๋ง์ด๊ฒ ์ง๋ง os ๋ด๋ถ์์๋ tcp ip ์ฒ๋ฆฌ๋ฅผ ์ํด์ ๋ณต์กํ ๋ก์ง์ด ๋์ํจ. ์ปดํจํฐ๊ฐ ๋ฌด์ง ๋นจ๋ผ์ ์ฐ๋ฆฌ ๋์๋ ๋งํ๋๊ฑฐ ์์ด ์งํ์ด๋์ด ๋ณด์ด์ง๋ง ์ฌ์ค์ ์ปดํจํฐ ๊ด์ ์์๋ cpu time์ ์์ฒญ๋๊ฒ ๋ญ๋นํ๋ ์์ ์. tcp ip ๋ฅผ ์ ๋ง ๋ฌด๊ฒ๊ฒ ๋ง๋๋๊ฒ ํผ์ก์ ์ด, ์์๋ณด์ฅ์ด ํผ. ๋ง์ฝ blocking ๋ฐฉ์์ send๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ๋ชจ๋ ๊ฒ ์๋ฃ๋ ๋๊น์ง ๋ ์ฝ๋๋ ๋ค์์ค๋ก ์งํํ ์๊ฐ ์๋ค๋ ์๋ฏธ์. ๋ฐ๋ผ์ ๋ฐํ์์ด ์ ๊ณต๋๋ ์ธ์ด์์ ์์ปค์ค๋ ๋๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ํ์ฉํ๊ฒ๋ async ํจ์๋ฅผ ์ ๊ณตํ๋ค๋ฉด ์ ๊ทน ํ์ฉํ๋๊ฒ ์ข์. ๋ฐํ์์ด ์์ผ๋ฉด send async๋ฅผ ์ํ ์์ปค ์ค๋ ๋๋ฅผ ๋ง๋ค์ด ๋๊ณ ์์ ์ ๋๋ฆฌ๋ ๊ฒ์ ์ถ์ฒ.
๋งค์ฐ ๊ฐ์ฌ.... ๋ง์ฝ send๋ฅผ ์ฐ๋ ๋๋ก ๋ง๋ค์ด์ ๋๋ ค๋ฒ๋ฆฌ๋ฉด ์ฝ๋ฐฑํจ์ ์ธ์๋ asyncํจ์๋ ๋๊ฐ์ ์ญํ ์ ์ํํ๋ค๊ณ ๋ณด๋ฉด ๋๋๊ฑฐ์?
@OO ใ ใ ๋ง์. C#์ฐ๊ณ ์์? C#์ SendAsync๋ผ๋ ํจ์๋ ๋๊ฐ ์ค๋ ๋๋ฅผ ์๋ง๋ค์ด๋ ์์์ ๋น๋๊ธฐ๋ก ํธ์ถ์ด๋จ. .net ๋ฐํ์์์ ์์์ ์ฒ๋ฆฌํด์ค. ์ด๊ฑด ์ถ๋ณต์ด์ผ C++์ ๋ฐํ์์ด ์์. ๋๊ฐ send์ฒ๋ฆฌํ ์์ปค ์ค๋ ๋๋ฅผ ๋ง๋ค์ด ํ๋๊ฐ iocp๋ฅผ ์ฌ์ฉํ๋๊ฐ ํด์ผํจ. ํน์๋ ํ๋ ๋ง์ด์ง๋ง sendํ ๋๋ง๋ค ์ค๋ ๋ ๋ง๋ค์ด์ ์ฒ๋ฆฌํ์ง๋ ๋ง์ ใ ใ
c# ๋งํ๋๊ฑฐ ๋ง์.. ์๋์ ๊ฐ์ฌ