ù Ϸ..
ؾ?
API ִ Լ ִ°ǰ?
.. DPLAY ˾Ҵµ..

http://www.sockets.com ð
н Ʈũ α׷ Howto Ŀ
н α׷ FAQ, TCP/IP FAQ ã ñ ٶϴ.ȭ (soaring )

ڷḦ ̰ ޾ ýϴ.
.. ִ ȭϵ Ǵ..
׷..
ڽϴ.. ==;
DPlay .. TCP/IP,IPX... ̵  ϴµ..
̰ ص ̸ θ.. ==;
׷ ϴ°ǵ..
winsock̶ ִ°ǰ? ^^;
뷫 .. ó  ؾ ϴ
亯 Ź 帳ϴ..
.. ó.. ׷ϱ.. ÷ ϴ°
ؾѴ.. Լ̸ ( .. )
Ź 帳ϴ.

´ٸ, Ѵٰ ˴ϴ.
ϸ..  ؼ ΰ ϴ ̶
˴ϴ. ׷ϱ, " Ƽ ǵ?" °Ŷ . װ
ǥ ˷ִ .
׷ , ׶׵ ϸ ϴ. ̰ ִٸ,
ŸũƮ ƺδ TCP/IP ּҸ Էϴ° ƴ϶ ׳
Ʋݿ . װŴ ̹ Ʋ ̹ Ǿ ֱ ,
ּ Է ִ .
׷ IPX ȹ? ´ 𸣰, IPX Ϳ?
Ʈ̿? ư LAN  ʴ ؿ ó˴ϴ. Ȯ
𸣰, ׷ LAN ִ Ǹ .
..ص ǰ? ȭ,̺ ״ϱ. ȭ̾
ȭȣ ױ.. :)
켱,ٸ ׶  ư 캸ô° ͱ.

IPX ַ LAN󿡼 ȭϰ  .
뺧Ʈ ⺻ Դϴ.
( IBM ߴ ׷ ̴ϴ. ߱ ȳ׿.)
TCP/IP н ߴ߱
.. ȯ ǥ ϰ
WANȯ濡 ߵư. ͳ TCP/IP ϰ
ְ ΰ ü TCP/IP ϰ ִ°.
TCP/IP IPּ ̶ IPּҸ κ TCP/IPۿ ű.
IPXü LAN̶ Ը Ʈ IPּҸ
. ( IPX Ҷ ּҸ ȳ.)
Ʈ ͳ 긴 񿡼 IPX ͸ִ
ֽϴ. (IPX ͸Ѵٱ TCP/IP̿
) 뼱 ȸ縶 Ͱ .
׷ IPX ϳ (Ʈ ) ϱ.
׹浵 IPXδ ϳ ׹泻 ִ°.

kali ƮŬ̾Ʈ ִ ҵ IPX TCP/IP Ʈ
ִ ̴ϴ.
IPX ̿ ص ܺθ kaliŬ̾Ʈ
TCP/IP IPX ؼ ٲִ ֱ
ܺο͵ IPX ִ .
Direct play ̷ ݿ 8 ϰ ִ
̷ Ŭ Դϴ.
Direct play ߽ᵵ ̳ IPX 8 ϴ
.
(Netview ϱ PPP/Slip , ø ̺ ᵵ մϴ.)
Socket TCP/IP α׷ α׷ ⺻ Դϴ.
Ʈ ϸ Ǵµ.
Ʈ ŵ ϱ ؼ İ
ε Ǿ ־ մϴ. δ Ǿ
ְ ͻδ Ǿ ִٰ ǥ մϴ.

̶° ̰ ľ߸
İ Ǿٰ ϴµ ̰ ҹٴ ƴϰ.
(̷ TCP/IP Illustrated Vol1 Ͻʽÿ.
α׷Ҷ Ⱦ Ѵٴ 鿡 .)
ư ̰ Ȱ İ ͸ ȯ غ
Ȱ̰ 츰 ̿Ͽ ͸ ְ ִٴ
߿.
DZ ؼ 켱 ϰϴ IPּҿ portȣ ˾
մϴ. Port ϳ ǻͿ ϱ ȣ
Դϴ. 1~65535 ο ǰ ʹ  ⺻ 񽺸 Ҵ
Ǿ ֽϴ. port ȣ Ϸ ȣ ְ
񽺸 ϴ ΰ DZ⵵ մϴ. ̷ Ʈ ϴµ.
츮 ϴ 80 Ʈ . ׷ 츮
 񽺸 ϴ Ŀ  IPּҳ ּҸ.
Ҷ ipּ 80 Ʈ

˴ϴ. ׷ Ư 񽺺 Ʈ ȣ ֽϴ.
ʹ ұ. Ҹ . ư Ʈ غ
ִ κ. TCP϶ ϳ Ʈ Ŭ̾Ʈ
ɱ?
װ Դϴ ^^; ణ ڷ ã . ( ƴ. ^^;
հ ļ..)
ư TCP/IP Ʈ α׷ ϱ ϱ
 ̶ ϸ ˴ϴ. WinSock 쿡
̱.
α׷ ϱ ؼ TCP/UDP ׸ Ʈ
Ʈ ? ˰ ־ API ¥ ˴ϴ.
ñϽø Ʈ 伭 Ǹ ø ذ ɰ̴ϴ.
׷..
̱ ȴٸ .. (isoft )

Unix α׷...
ȳϼ...

Stevens å ...
ظ װ ذ Ͻ Ű...
ٰ ؼ
带 ϴ ƴմϴ.
Unix
뿡 ؾ ̰...

پ ְ...
뵵 Ǵ ؿ ؾ߰...
ϰ ʴٸ one processε մϴ.
multi process ص ̰...
ϰ IPC ϴ ͵ ū ˴ϴ.
Unix ޼ ׷ (?) α׷ ...
ϰ ִµ...
ʿϰ մϴ.

带 Ͻ÷ ٸϴ.
Ϸ ޶
̰͵ ؾ ̰...

Unix Ư ôٸ
One server ô մϴ.
loop time 󸶷 ֳĿ ǰ...

ó ð ּ ٿ ϰ...
Unix IPC Ǵϱ...
Ʈ Ҳϴ.

׸ α׷ ߰ ...
Stevens Advenced Unix Programming ø ǰſ.
ڷ Linux ȣȸ ø ֽϴ.
gcc Ͻô е ɰ̴ϴ.

ڵ Ѱ ʿϽø...
ӵ ҽ ѹ ô ͵ ɵ ϳ׿...
ϱ⿡ ʹ ٸ...
ü 뿡 ɰ̴ϴ.
ȫ (kingduke)

TCP/IP ΰ?

ƺη ؼ UDP/IP ˷ Դϴ.
ƺ п ׷ ִ° ϱ.
PC ϴ α׷ Ÿ
äũϴ κ ϴ.
Error correction Ƿ ¥ֵ ϴ°.
TCP/IP 99% ٰ ϰ α׷
¥ ɰ ϴ.
ణ Ȯ äũ ٴ ¿.
𵩼ӵ ִ Ȳ غ
TCP/IP ٴ° ʴٴ .
ӵ ϴ ӿ UDP/IP ° ִµ
ƺε . ..ռȣ (mouse )

throattling

, 28k ߴٰ սô.
͸ ´µ,ʿ װ ¹޾ġ
ٳ׿.. װ ذϱ ؼ ʿ 'õõ'
ִ° ٴ±. ̸ throattling̶µ..װ ʿ
ñմϴ. ʹ ϴ ť ȴٰ ˰ ִµ..
ɸ
ʹ 亯 𸣰...
ť full ǰ data overflow ǰ...
Ȳ ť  ۿ ϳ ...
κ data ҸǾ ...
Ͻ ߻ϴ ...
̰ ذϷ...
߰ ۸ ϳ ߰...
˳ϰ ŭѰɷ...
...
ť ĥ ϰų... ۰ ĥ ϸ...
濡 ޼
õõ ϴ ...
sync Ű Ͱ ...

NT Service
̷ α׷ gma 5 ÷Ƚϴ. ãƼ Ẹ.
NT Service ,ʱ κ Ѱ ε,̰ ó
° ¥ մϴ. ׷,̰ ذ ؼ
øϴ.
NT Service(MFC codeguru ãǵ,MFC ʽϴ. 翬ϰ..)
ʱ κ ִ AppWizԴϴ. ̰ msdev/sharedide/template
س,new project Ͽ ãƺ ̴ϴ.
NT Service е鲲 ̴ϴ.
ø ϱ ū ̴ϴ.
ɸ

۷ ϱ
ioctlsocket() ۷ ϴ° ˰ , ݴ ۽ ۷ ˾
𸣰ڽϴ.
, winsock 2/blocked socket ϴ.
ɸ
..,н迭 ioctlsocket ۽ ۷ ˾Ƴ
ִٴµ,Ե װ ʾƿ. :)
ȳ ϼ â duiclemeԴϴ.
.
˱ ϵ忡 ſ ؼ WSAioctl ϰ..
ϵ忡 ۸ ׳ ϴ ɷ ˰ ֽϴ.
II ϽŴٸ..Ƹ..
ϵ忡 WSASend Լ Ҷ ִ ũ ŭ
Ȯ ˰ ֽϴ. ̰ ũ.
׸ ۸ ũ ξ..
īƮ ...
= ũ*īƮ.
(, ʴ´ٸ)
ϵ忡 ؼ ʴ´ٰ...˰ ֽϴ....
...ɽ ±.....Ȥ ã ð...
ƴ϶ Ե ˷ ּ...
.......â

TCP/IP ῡ send() Ͱ ߰ 찡
ֳ? Ŭ̾Ʈ ޽ κ ;ߵǴµ, и
´ٴµ Ŭ̾Ʈ ϴ .
̷ 쿡 ƽô Ȥ ô..???

ݻ° ʴ tcp/ip ̴ϴ.
ؿ ϰ Ȳ 𸣰 ϼ.
, send ϳ recv ϳ Ǵ ˰ recvƾ ôµ
send ŭ recv ʽϴ.
send ̰ Ǿ recv Ǵ 찡 ֽϴ.
send ó ö Ÿ ϳ óϰ ʿ
Ÿ ߱ ó Դϴ.
( 춧 Ȳ߾... ^^)
recv size üũ .
recv ļ(?) ̴ϴ. ^^
-- ȭ, soaring@netian.com
Ȥ ʿ TCP_NODELAY 0 ϰ,޴ʿ װ 1
̳? ̰ ñϱ. غð ˷ֽø
ڽÿͿ.. ɸ
ɼǿ TCP_NODELAY
ָ ̷ 츦 ִٴ ҹ ִ ɼ Ű Ʈ û
ٰ ؼ Ⱦ .
·ų и ޽ ߰ ų Ѳ ٿ ŵ ִٴ
Ȯε Դϴ. ̷ 쿡 縮 ٿǰų
̻ ϴ.

޼ Ҿ.

ȳϼ...
Ͽ ۽ Ⱑ ִ ...
к Ѵٸ,
 쿡 100% ʴ´ٴ ...
̰ , ׳ ̴ ݷ ְ...
TCP, UDP ߿ ʴٰ մϴ.
Ȯ ְ...

TCP Ÿ ֽϴ.
⼭ ޴´ٴ ǹ̴ ΰ ְ...
Ÿ ۵ 찡 ְڰ...
DZ ߴµ α׷ ...

ذ ٰ ؾ߰...
̷ 츦 ؼ ȸθ ؾϰ...

TCP UDP ü ϵ νϴ Դϴ.
Ư Ʈ Ʈ ׶ ׶ Ȳ
̰ η νĵǴ ϰ .
ٵ װ ׻ ̰ ٰ ...
0.01% ϱ...
ᱹ ̷ Ÿ ְ Ǵ .

α׷ κ а տ ֽϴ.
2 µ ѹ з 3 о
аų ݴ 찡 ߻ ֽϴ.
׳ ̰ аų ۿ ϸ ...
о о ȵǰų ᵵ ʴ ġ .

Դϴ.
Ǵ Ƽ μ Ƽ ɼ .
NODELAY ϼ̴µ...
ݾ ٸ ...
ִ ٰ մϴ.
ý Ƽ ణ ϴ ȵǴϱ.

Ŷ © ɷ дϴ.
̰͵ ΰ α׷ ؾ߰.

ᱹ, α׷ Ű ü ؼ
Ÿ ְ ߻ ִ
case by case ִ
ý ϴ ׳ ִٴ .

е α׷ Ͻ ʿ , å ִ°͸
Ʈϰ ٹ̷ Ͻô ִµ...
̻ 8086 640K ޸𸮿 α׷ ϴ ƴմϴ.
ϰ Ŀ ˳ α׷ մϴ.

ϵ ޹ħ Ǵ Ȳ̰
ŷڼ ü ̱ Դϴ.
M$ó ũ ó ϼ ¼ ¼
ڱ Ǽ ƾ ϴ .
ó ִ ؼ...

Ⱦ Ǿ...
...
е ̰ ȿ̸鼭 ŷڼ ִ
α׷ Ǿ մϴ.
ó dz õ ϴٰ ̷ ... ...
ȫ (kingduke)

׷쿡 ؼ ϴ.
޾,ེ ذ߽ϴ.
° ̹ ġ Ÿ̾. :)
,׷ ׷ غ.. ö
̶±. Ͱ ġ° TCP/IP ̶ϴ. TCP/IP
streaming protocol̶.. ׷ ̸ ƴ϶ϴ. , ġ
Ӹ ƴ϶ ŵǴ 쵵 ִϴ. ׷ ,׷
ؼ տ ũ⸦ ŷϰų,ؽƮ
CR/LF δϴ. ų پ ƿ ذϴ°
α׷ ̶±. ,UDP ̷ ٰ մϴ.
ɸ

۽̵Ǵµ ȵǸ..
ߴܵǴ ٰ ˰ ֽϴ. 켱,
¸ ϳϳ غ. ߰ ٰų ϴ° Դ
.
׸, MFC ʰ ׳ , Ȯ 亯
ϱⰡ , ˱, MFC ۽ ˰ ֽϴ. װ
´ٸ, ۽ Ǿ װ ̹ ޾Ҵٴ ϴ.
׳ ڸ, ⼭ ̽, Ŷ ġ ų, ޽
ߴٰų, ޽ ť Ƽ ƴѰ ñϱ.
ϳ ۵Ǵ°..WSAAsyncSelect ϴ , ó
ϰ ؾ մϴ. װ Ƿ ¥ Ƿ , ׷
Ȳ̶ ƿ winsock nonblocked socket ų, ѽθ MFC
ٰ ϴ. ü ڸ, WSAasyncsel
ect ޽ ó ƴ win32 event ˸ ϴµ, װ
ؼ ι ̻ ߻ ó ޲ մϴ.
ɸ

[] virtual PPP ǻͿ UDP۽ϱ

proxy server

˱ε, proxy server ' δ' ,
ּҸ ʿ ϴ proxy server
ؼ ӿ ؾ Ѵٰ .
ms proxy server ڸ, UDP ῡ proxy ,
1. Ŷ 뿡 ο ߰ؼ ¥ ּҸ ۴ϴ
2. proxy ͳݰ Ʈ ,װɷ ϴ
ִٴ±. 1 ͸ ǻͿ ؾ ϱ
2 ȿ̶ ֽϴ.. ƹư,̷
̶ ̹
ȵȴٴ . ȭ ⿡ ִ° ƴѰ ۵Ǵ±.
..! subspace PPP ưϴ. ̸
⸦ ؼ proxy ϴ ˾Ƴ´ٸ Ҹ °,
Ȥ ׵ proxy , 'Ϲ' proxy ϴ UDP
˰ ִ° ƴұ?
.., VDOlive RealAudio UDP ֽϴ. װ͵鵵
غ߰ڱ.
͵ ߰ߵǴ.. 켱, subspace ü FAQ firewall/prox
y ȵȴٴ ֱ. ׷ ұϰ proxy.hitel.net

UDP ϰ ֱ. ׷ ڸ, ¥ PPP ȭӳ
Ʈŷ ǻͿ proxy ϴ ִ° ƴұ? ñ
.

.. ذ ϸ, ͳ δ UDP
ٴ ?
.. Ϸ proxy,UDP Ű . RFCʵ ñ
.. ׷ ٸ ʴ. proxy¾
.. Ƿ ? .. Ϸ簡 ɸٴ.

real ppp, proxy ʼ ƴϰ ûΰ ˰ ִµ.
proxy °ű ʿ ׳ °ű...
ִ õppp ׷... ڳݵ ׷ɷ ˰ ֳ׿.
۰ proxy Ư Ʈ(http, ftp) Ǵ° ˰ ֽϴ.
Ÿ ɽ ʿ䰡 ...
Ʈϰ 谡 ٵ...
real ppp Ʈ ۰ ȭ ƹ ׷.
ȭ ε Ʈ Ҽ ϱ.
̽ ϴ Ʈ ޶ Ʈ ڿ Ź
غ ְ... ǹ...
-- ȭ.

Ʈ ӿ Ʈ κ α׷ Դϴ.
׷ Ȯ ӹ 𸣰ڳ׿.
( ΰ.. ^^;)
˰/غ δ TCP UDP /Ŭ̾Ʈ
ؾ ϴ° ..
ó TCP /Ŭ̾Ʈ ̰ UDP ±
˰ ־ŵ.
TCP Connect Ǿ ϰ,
UDP Connect ü IPּҸ ˸ Ѱ ..
~ ϳ ȮѰ .
ǵ /Ŭ̾Ʈ ý۸(ӵ ʴ)
TCP ϰ /Ŭ̾Ʈ Ŭ̾Ʈ/Ŭ̾Ʈ ͸
(ӵ ݵ ʾƵ Ǵ) UDP Ϸ
̾ϴ.
̷ ϸ ̳ ׿ܿ ͸ ϴ κи
ӿ ̴ ʹ UDP ؼ Ŭ̾Ʈ
͸ ְް Ͽ( ġ ʰ) ϸ ִ
..(Ʋó) ϴ°ſµ.. ..
ʹ ±...
ô е ϼ 𸣰ڴµ.
ƽôº ƴϸ ǰ ź 亯 Ź帳ϴ.
Ʈ α׷ֿ մô е ..
ݺؼ ϴ° Ƽ Ÿ.
Ȥ Ʈ α׷ ϽǺ ø ּ. ^^;
Ϸ° Ʋ İ () ΰ Դϴ.
( ܿ .. ^^;)

ǥ ũ .
TCP UDP ǾǾ, Ŭ̾Ʈ/ ° Ʈӿ
 óϳĿ ޷ ֽϴ.
Ϸν ߻ϴ° UDP ణ ֽϴ.
UDP Ͻô غø ǰ.

õ ̰ /Ŭ̾Ʈ ʹ
Դϴ.

TCP ϴ Connect Ǹ ,
ſ ־ Ӽ , UDP Ͱ ⵵
ϰ ι ⵵ ϰ ٲ ⵵ . ӵ UDP
.

Ʋݰ , κκи ϰ ӿ  Ŭ̾Ʈ
ϴ Դϴ. κ ״ ϰ ϴ
ִ äð ϴ . (Soph )

ȳϼ ȸ̵ ̰游 Դϴ.
TCP/UDP TCP/IP Layer߿ Transfer Layer شϴ
ȭ ߻ ̶ ڱ.
TCP ȭ Դϴ. ⺻ Ǿ ִ ¿
͸ ͸ Ⱥ
ϰ ֽϴ. ׷鼭 Ǿ ִ°?
üũϸ鼭 Ʈ .
üũ .
׷ ų ﰢ Ŭ̾Ʈ
׺κи ٽ 䱸ϰų ϰų ø̼ǿ ٰ ˸Ե.
κ ø̼ǵ .
ӱװ׵̳ ӵ ..
͸ ְ ִٴ ִ ̰
Ʈ ȸ ° 쿡 ְ.. ͳ
TCP/IP ոӸ TCP ŭ Ǵ .

UDP ߻߳ Ͻø ˴ϴ. ʿ
޴ ʿ ְ Ű Ⱦ.. ׷ ޴ ʿ
޾ ʿ ٹ޾Ҿ~ ޴ٰ 丶
2 Ŷ ߸ ޾Ҿ ٰ Ⱦ~ ޽ ָ
ٽ ִ ׷ .. ͸
ũ ©(̰ Ŷ̶ . ũⰡ ʾҰ
ִ ּ ũ⸸ . ) ȣ ƿ ϴ.
޴ ְ ׷ .
׷ ߰ ߸ ְ.
̰ ӵ ..
Ʈ Ʈ ϴ Ѳ ϱ.
Ʈ ° ٸ ٽ ϴ ͵
ϱ ȿ . ս ϴ
Ͱ Ƴα ͸ ۽ UDP .
׷ REAL Audio ° ⺻ UDP Ǵ°Ű Mud

Mug TCP ..
TCP/IP ׸ ⺻ݵ鿡 ڼ Ͻ÷
TCP/IP Illustrated 1,2,3 ʽÿ.
̰ ̴̺ϱ..

fROM PSYCHO

TCP/IP ̺Ʈ .

̺Ʈ ۵ 𸣸 ˼ .
α׷ ϴٰ ̴ ϴ.
FD_CONNECT
ŷ connect() ִٰ ޽ µ, ޽
´ٰ ƴմϴ. wParam̴ Ȯؾ մϴ.
ڵ尡 . ϴ.
FD_WRITE
send()ϸ send()Լ ߰ GetLastError()ؼ
ڵ带 Ȯغ BLOCK¼ ɴϴ. ̰ غ
ȵǾ ְų ƮȲ ٺ '' ¸ մϴ. ̰쿡 ̻
޽ ϴ. ڰ Ͽ ϱ ؼ
۰ ° Ǿٴ ˷ִ FD_WRITE޽ Ŀ
send() ؾ մϴ. *** ؾ FD_WRITE 밡
ѹ 뺸ǹǷ send()Լ 1:1 迡 ʽϴ. ̰ 򰥸
ȵ.

FD_READ
Ͽ о ޽ ִ FD_READ 뺸ǰ ̶ ø̼
recv() Լ ֽϴ. 100Ʈ ŵǾµ recv()
50Ʈ оٸ FD_READ 뺸˴ϴ. Ϲۿ Ͱ ִ
ɴϴ. *** FD_READ ޽ 1 recv() 1 д° ̱,
ι ̻ ߻ϹǷ ؾ մϴ. (޽ )
FD_CLOSE, FD_ACCEPT Ű澵 .

α׷ֿ ־ ٽ FD_READ, FD_WRITE, ׸ ŷ Ȳ
. ޽ ŷ ? ̻ ϴ.
FD_WRITE޽ ö ٷ մϴ. FD_WRITE ׶
޽ ϴ. ׷ٰ ŷ ɸϴ. ׷ FD_WRITE
ö ޽ . ׷ Ѹ ð ޽
 ϴ ϸ, ޽ ť ־ ξٰ FD_WRITE
ť ִ ͸ ۽Ű Ǵ . װ ٰ

ŷ ɸ ؾ.
̷ ϴµ 1 Ŭ 1 ϸ . ׷
ŵ.

ƨ ...

ȳϼ. Ʈũ ׼ ֽϴ.
ٸ κ ϼ Ǿµ Ʈũ κ ġ ʱ.
Ʈũ κ ׼° RPG ӱ׺ 10 մϴ.
select Ǻ ioctlsocket Ͽ о
Ÿ ̸ ˾Ƴ recv մϴ.
select Ͽ о Ÿ ִ° Ǵ Ǿ
ioctlsocket Լ ϸ dwBytesRead 0 찡 Ȥ
߻ȴٴ ̴ϴ.
ٸ κ Ҵµ Ȥ ڵ ƨܳ
찡 ߻մϴ.
α׷ ޼ ƴ ŷ(³?) ߽ϴ.


while(1)
{
if(select(socket, &rfds, &wfds, &efds, &tv) < 0)
continue;

if(FD_ISSET(connections[i].socket, &rfds)) // incoming data
{
addlen = ioctlsocket(connections[i].socket, FIONREAD, &dwBytesRead);
if(addlen < 0)
return(-11);

if(dwBytesRead == 0)
return(-12);
recv(...
.
.
.
}

ڰ ƨܳ° ü ƴ϶ ioctlsocket 0 µȴٴ°
° غڽϴ. ƴ
ϱ, ٸ Ʈ ø ٸ е 亯 մϴ.
ioctlsocket Լ Ẹ ʾƼ, Լ 0 ϴ 쿡

ϰڽϴ. ̶ ̷ Ϻϰ
˾Ƴ ϴ 찡 Ƽ..
׷ غ..

TCP/IP, FAQ ɽ ߰ߵǴ°, send WSASend Ŷ ״

ʴ´ٴ ֽϴ. ۽ ޱ , װ
۽ ״ ʴ´ٴ Դϴ.
,
aaa bbbbb cc dddd eeeee

̷ Ŷ ´ٸ, ޴ ʿ
aaa bbbbb cc dddd eeeee
̷ ʽϴ.
aa abbb bbcc ddddeeeee
̷ ְ
a a a b b b b b c c dddd eeeee
̷ ְ,
aaabbbbbccddddeeeee
̷ ִ°̴ϴ.. TCP/IP Ʈ Ѵٴ° ˰ ?
TCP ̷ ִ ȮϰԴ ãƺ ʾҽϴ. , ̷
ִ° Ȯմϴ.
׸, recv 0 ϵǴ° graceful disconnect մϴ. ׷, ̰
ioctlsocket ϴ 𸣰ڱ.
켱, ioctlsocket , ioctlsocket ޾ƾ ũ⸦
޴° TCP Ư ̶ ʽϴ.
̻.. ٸ е Ʈ غ ͱ.

ȳϼ.
UDP ϴµ.
bind Ŀ SOCKADDR_IN ڱ ּҰ °ɷ ˰ ִµ
UDP 0.0.0.0 õǾ ±.
׷ getsockname() ϴµ 0.0.0.0 µ
Ȥ UDP ڱ ּҸ ˾Ƴ .
VisualC++ ãƺϱ UDP Connect DZ 0.0.0.0 ´ٰ
ϴµ .. .. TCP ϰ Ʋ ׿..

Ʒ ϸ ڱ ּҴ ã ִµ Ȯ ƴѰ
׿.
Ʒ ...
Ͽ ڱ IP Address ˾Ƴ ֽϴ.
׷.

#include "winsock2.h"
#include "stdio.h"

BOOL GetIPAddress(char *Address)
{
SOCKADDR_IN server_sin;
PHOSTENT phe;


phe = gethostbyname("localhost");
if(phe == NULL)
return(FALSE);

phe = gethostbyname(phe->h_name);
if(phe == NULL)
return(FALSE);

memcpy(&server_sin.sin_addr, phe->h_addr, phe->h_length);
strcpy(Address, inet_ntoa(server_sin.sin_addr));

return(TRUE);
};
void main(void)
{
WORD version;
WSADATA wsaData;
char IPAddress[128];

version = MAKEWORD(2, 0);
WSAStartup(version, &wsaData);

if(GetIPAddress(IPAddress) == TRUE)
printf("%s\n", IPAddress);
else
printf("Error !\n");
};

^_^ Connect ׳ Ƽ ־µ
̹ ߵڴ.. ݾƿ
Connectÿ ŷ Ǹ鼭(ip ߸ġųϸ ŷ ߻)
α׷ ¿ ̸ݾƿ~~
¼...׷ ҷ
ͺŷ ٲܷ~~

icoctlsocket(socket,FIONBIO,(unsigned long *)TRUE);
̷ ߴµ ҿ ׿~~ ~~~
ϰ ǿ connect õؼ
ʵ ȵǸ ޼ڽ
ٽýõ
θ ؼ ϰ Ͱŵ.. ....
^_^ ɼ ̴ Լ ̰ ϸ ̷ ɰ

... ʺٺ ϴ° ´ 𸣰ٰ ٸе
 óϰ ... T_T Ƴ ߸𸣰ھ~~
T_T α׷̶.. ~~
亯 Ź 帳ϴ`~~ ^_^
ٸ~~

setsockopt time out ϸ ɰ̴ϴ.. recvtimeout,sendtimeoutΰ..
ɰ̴ϴ. ȳ.. ȮѰ 'ȴ'°̴ϴ. .

̹ 񵿱
FD_CONNECT ޼ óҷ
״ ӵǴµ ٸ IP ҷ
10061 ׿ ̻
WSAECONNREFUSED : õ ź Ǿ Ÿ

switch(WSAGETSELECTEVENT(Event))
{
case FD_CONNECT: sprintf(String,"Socket Error : %d",WSAGETSELECTE
RROR(Even
t));
MessageBox(NULL,String,"",0);
break;
ٽ...
switch(WSAGETSELECTEVENT(Event))
{
case FD_CONNECT:sprintf(String,"Socket Error : %d",
WSAGETSELECTERROR(Event));
MessageBox(NULL,String,"",0);

break;
̷ϴ...
ŷ ׳ connectô ƹ ̻ Ǿϴ
űϰԵ ڱڽ Ҷ 0 ̳ɴϴ ...

IP (?) PORT() غ ȵǾ ߻ϴ Դϴ.
Ǿ Ȯغ... portȣ...

ȳϼ?

UDP ϰ ִ Դϴ. .. T_T
Ʈ α׷ մ ȵ..
̷ ϰ Ǵ±..
UDP ÿ ° ϴٰ ϴµ.
 ϴ ƽôº ֽñ ٶϴ.
׸ ÿ ͸ Ͱ  óǴ°.. ..
ѹ ISP óϴ° иؼ
Ҿ~ °..
... (.. ˾ư°ͺ 𸣴° ±..
𸣴°ͺ ƴ° .. T_T)
׷ Ź帳ϴ.

Broadcast սʹ ϴϴ.
ǿ ҰѰ. 192.168.1.xԴϴ.
ŬC̱ ݸũ ǰ.
x ִ밪 255 ˴ϴ. ׷ x 0 254
IP 󿡰 Broadcastϰ Ǵ°. ڵ.
ÿ Ǵ UDP IPX ˴ϴ.

PS. UDP BroadcastŰ äα׷ µ
ħ ̷ ö .
äÿ UDP ҵ մϴ.
ä̳ ϵ UDP ȴϴ.

Ʈȣ

ȳϼ.. Դϴ..
tcp/ip Ҷ ݵ Ʈ ȣ ϴµ..
Ʈȣ α׷ ִ ȣ Ͻø˴ϴ
Ӹ ۰ ȳµ.. ftp telnet α׷鿪
Ʈ ȣ ֽϴ.. ̿ tcp/ip ϴ α׷
Ʈȣ ִµ ̹ȣ ߺǾ ȵ˴ϴ.

.. ⸦ ڸ(ª 볯 .. -_-)
ǻͿ ٸ ǻͷ ϴ
ã ܰ谡 ֽϴ..
ڼ Ʈ å ñ..
ϴ ϵ ϴ ã..
α׷ ϴ ãϴ..
ٷ α׷ΰ ϴ° ƮȣԴϴ..
μ Ѱ .. Ǽ̴.. -_-

ֵ Ƿµ .. -_-
ٶ Ϳϴ.. Ϸǽñ.. ^^

ȳϼ.

α׷ API ֽϴ.
TCP/IP Ŭ̾Ʈ Ŷ µ
Ŷ Ÿ ũ⸦ ִٰ µ Լ
 Ź帳ϴ.
׸ ũ⸦ ϴ ˰Ͱ.

ϰ ij͵鵵 Դٰϴ ӱ¸ µ
̻ϰ Ŭ̾Ʈ ϴϱ Ŭ̾Ʈ
SEND RECV ϴ° ҽϴ.

ϸ ̴ ͵ ߿ Ǵ.. -_-;
 Ŭ̾Ʈ ߵǴµ  ȵdz׿.
 Ű ڱ ȵǴµ ڱⰡ ְ̰..

۹ ƴұ ;..

׷ ϰ ߰ؼ ٽ 帱.

1) SEND/RECV ӻ, Լ  ?
2) WSASEND/RECV ִŰ ׳ SEND/RECV 󰡿?
ȿ..
3) SEND/RECV 񵿱ȭ ͺŷ ϴ.
ٺ 񵿱ȭ ׷ ͺŷ Ŷ Ⱥȹ ϱ
.. ñմϴ.
4) ͺŷ SendMessage PostMessage Ἥ WD_WRITE,WD_READ
µ (Ϲ ΰɷ дϴ) ޼ó SendMessage
PostMessage ˰ͽϴ.
Post ϴϱ ϴ ʾ ijͰ 沱 ٴ --;

Send ޴ ݸ ϰ Ŀ Ŭ̾Ʈ Ŷ ƿ
ϴ մϴ.

ʹ ΰŰƼ ˼ѵ.
ʹ ġ.. T_T
ä̸ ȵǴµ..
DX ӱ¶.. Ŷۼž絵 ؼ Ŭ̾Ʈ
ܼ Ź帳ϴ.
3 5ϱ WIN95,98 NT
Ŭ̾Ʈ ǹ. --;

Ź帱~.

.. ϳ,... ..
Ŀ ŷ, ͺŷ, 񵿱...
̷ ֽϴ.
ͺŷ ҷ 尡 Ŀϴ.
ֳ! ̷ Ȯؾ
ϴ ֱ⶧. ٳ å α׷ Դϴ.
Ŀ Ϲ 񵿱 Դϴ.
̳ ȣϱ .
ó óǴ 带 ϹǷ...^^;
ŷ մϴ. timeout ۰ ..
Ȯ ׽Ʈ غ
߽ϴ.

send/recv WSASend/WSArecv ̴... ϴ... ⺻
ø . WSA~ Ŵ 2 ο ɵ

ϰ մϴ. ڸ ø̳ QOS...
̷ ʴ´ٸ ׳ send/recv ..
ø ϴ ̿ϹǷ...
WSA~ ...^^;

׳ ͸ Ѱ ִ ..
Լ.. ׷ ° ϴ.
2 Ƽ ۵... ij/ ̿ ʴ´ٸ
ʿ䰡 մϴ... (³??? ̱..)

޽ Ʈϳ... ϳ...
𸣰ڱ. ֳϸ ޽ ƴ..
̺Ʈ ̿ϹǷ....^^;
... ...
ξ .. Ʈ... ᱹ ӵ ʿ

¿ ҵ..
ϴ ׿..
ٸ ãƺ~~
̸.. Ǿ⸦..
> 󿡼 챸 ʹ~~~~
Լ ϴٴ~~~ ..

ȳϼ~ 亯޾ ⸸ Դϴ --;;

亯 ޾ҽϴ.
ü ť¸ غ ߽ϴ.
.


FD_READ ɧ recvԼ Ŷ
FD_READ ٽ ȣϴ Ϳ ؼԴϴ.

case FD_READ:
recv(socket,buffer,10,0);
if (buffer==1) recv(socket,buffer,20,0);
break;

α׷ ư Դϴ.
send 30byte ½ϴ.
Ŭ̾Ʈ recv ޴µ 췯 10byte

1̸ 20byte ޾ƶ~ ̷ ߽ϴ.

ٵ α׷ ֳ?

å FD_READ recvް ٽ FD_READ
ȣѴٰ ߽ϴ.
׷ ᱹ recv(socket,buffer,10,0) 3 ݺع
if ϴ° dz? --;

ƴ recv(socket,buffer,10,0)ؼ 10byteް
if ٽ FD_READ recv ݺϴ°ǰ.

.. Ƴ׿.
Ʈα׷Ͻô
ƽDzƼ 帳ϴ.
ϸ ҽ ۾ Ȳ̳׿ -_-;;

Ź帳ϴ.

* buffer ̸ ڿ ѱ ߾ϴٸ
ũ⸦ ̸ ˼ ִ .
ũ⸦ ˱ؼ ¿ ѹ ۿ
.. ~

TCP ..
Ŷ  ɰ Ҽ ϴ..
30Ʈ ´ٸ..
10Ʈ 3 ,
30Ʈ ѹ ..
5Ʈ 6 .. 𸨴ϴ.
÷ ظϸ ť մϴٸ..

ƹư,
recv ȣؾϴ .
Async Ŵٸ, ť FD_READ ö ־ մϴ..
޾ƾ Ÿ Ÿ Ϸ ɶ ؾ߰..?
޼ ް.. ˻ϰ.. --;
ƹư.. ׷ٿ ŷ ° ..

... Async .. õԴϴ.. --;;
2 Իߴµ, Async سҴµ.. ƾ´ٳ׿..

ٸ.. I/O Ƽ÷.. (select/poll)
.. ͳ׿..

- Testors

ڵ忡 ֽϴ.
recv(socket,buffer,10,0);
if (buffer==1) recv(socket,buffer,20,0);
⼭ buffer buffer[] 迭̳ Ҵ ޸ ٵ
buffer == 1 . FD_READ ޽ ι recv ϸ
Ŀ ޽ ϰ ˴ϴ. ϳ FD_READ ѹ
recv ؾ մϴ. ϰ ڵ带 ٸ ϴ.

int iRemainBytes = 2; // ũ 2Ʈ Ǿٰ
int iRet;
char * pBuffer, cBuffer[256]; // ޽ ۿ
char cReadMode = 1; // 1̸ д , 2̸ ü޽
short * sp;

pBuffer = (char *)&cBuffer[0];

case FD_READ:
switch (cReadMode) {
case 1: // д ̴
iRet = recv(socket, pBuffer, iRemainBytes, 0);

if (iRet == 0) {
// Ͽ. ŷ ƴ ġ
// ۿ .
}
else {
// о. 2Ʈ о ˻
iRemainBytes -= iRet;
pBuffer += iRet; // Ʈ ŭ ̵

if (iRemainBytes == 0) {
// о. м
// 2Ʈ ޽
// ǾǷ
sp = (short *)&cBuffer[0];
// о ü

iRemainBytes = *sp;
// ü д ȯ
cReadMode = 2;
}
}
break;

case 2:
// ü д .
iRet = recv(socket, pBuffer, iRemainBytes, 0);
if (iRet == 0) {
// . ŷ ƴ ġ
// ۿ .
}
else {

// ü о. ŭ Ʈ
// .
iRemainBytes -= iRet;
pBuffer += iRet;
if (iRemainBytes == 0) {
// ü ޽ о. ۾
// cBuffer[] ޽
// ´. α׷Ӵ ⼭ cBuffer
// ޽ о ޽ ť
// ־ óϸ ȴ.

PutRcvMsgQuene(cBuffer);

// ޽ ȯϰ д 带 ٽ
// д ʱȭ Ѵ.

cReadMode = 1;
pBuffer = (char *)&cBuffer[0];
}
}
break;



񵿱 ̿ ƾ 뷫 ϴ. 쿡 ̷
޽ Ŀ ؼ ó ϰ ߴµ
Winsock 񵿱 Դϴ.

̷ ϴ 극 ƼII 300 ýۿ 500
ص ŵ.

ü ޽ б 带 ʱȭ Ҷ о
̹Ƿ iRemainBytes = 2 ְ . () (Soph )

ȳϼ..
.. ̷ 帮 dz׿ -_-;;

׷ٰ ø ^_^;;

95,98 NT Ŷ óǴ ° Ʋ ϴ.
95,98 ׶׶ ϴµ
NT ޴ Ŷ ȭ ȵǰŵ.
̻ϰ ü ° ϴ
(PC ƴϱ. ׷ٸ ȭٵ)

ƹ ϱ⿣ ۹ΰŰ
setsockopt ִ Ŷ۸ Ҽ
ִٰ ϴ.
MSDN̳ Ʈå ɷδ ʹ ư 

..

setsockopt ۷ Լ ּ
ڽϴ.

׸ Ȥ ü ٸſ ̷ 찡 ִ
ñϱ.
߻ Ŭ̾Ʈ üϴ.

׷ Ź帱

SOCKET s;
int buf=0x1000;
setsockopt(s,SOL_SOCKET ,SO_SNDBUF,(const char*)&buf,sizeof(buf));
setsockopt(s,SOL_SOCKET ,SO_RCVBUF,(const char*)&buf,sizeof(buf));
̷ ϸ ˴ϴ.

ٵ,ȭ ..۽,ɷ ذ ṉ̀. Ȥ Ŷ ġ
ɰ ó ϽŰ ƴѰ?

ڽ IP

BOOL CAsyncSocket::GetSockName(CString& rSocketAddress, UINT& rSocketPort)
{
SOCKADDR_IN sockAddr;
memset(&sockAddr, 0, sizeof(sockAddr));

int nSockAddrLen = sizeof(sockAddr);
BOOL bResult = GetSockName((SOCKADDR*)&sockAddr,
&nSockAddrLen);
if (bResult)
{
rSocketPort = ntohs(sockAddr.sin_port);
rSocketAddress = inet_ntoa(sockAddr.sin_addr);
}
return bResult;
}

BOOL CAsyncSocket::GetSockName(SOCKADDR* lpSockAddr, int* lpSockAddrLen)
{ return (SOCKET_ERROR != getsockname(m_hSocket, lpSockAddr,
lpSockAddrLen)); }

..ó MFC4.2 CAsyncSocket Դϴ. ư׿

ȳϽʴϱ...

Ǵٽ ־....^^;

̺Ʈ ü ̿ 2 α׷ ϰ ֽϴ.

˱ Ŭ Ÿ recv() send()
ۼ ͸ ѹ ϴ
˰ ֽϴ. ׷ , Žÿ ͸
ϴ ҽϴ.

WSARecv() WSASend() Լ ̿ؼ
ۼ ϰ ֽϴ.
ñ Լ ̿
Ŭ Ÿ Լ

ʿ Դϴ.

WSA~Լ ̿ ϴ
Ƽ.

Ե 亯 Ź帳ϴ.

Ʒ ʺ(?) Դϴ..

Ϲ send/recv Լ ٰ ϰ.
ѹ FD_READ 밡 ͸
ִ .
׷ϱ.. 1000Ʈ ´ٸ, 1000 Ʈ
ؾ FD_READ ߻ϴ .
˱ Ǿ ⶧ ѹ
ϴ 찡 ɷ ˰ ֽϴ.
׷ٸ, ѹ ޾ƾ ϴ ޽ι ްԵǰ..
׷ٸ ε ؾ ϴ .

޽ ̰ ̶,
޽ ̸ üũؾ ϴ ͵ .

FD_READ/FD_WRITE ߻ϴ ̳..
Ȳ ֽϴ.

ϴ ˰ ִ ڸ..
FD_READ , ۽ ͸ Ϻζ
ϸ ߻ϰ, ̶ Ϻκ ؼ ۿ ְ
ε ϸ, FD_READ ̾ δ.
̶, ü ޽ ̸ üũؼ ü޽ Դٸ
޽ ϰ, ε 0 .
(WSAEWOULDBLOCK  ظ ϰ ֽϴ)

FD_WRITE , ѹ ü ޽ ϴ 찡
Ƿ ( ϴ ...-_-;;)
۽ ϸ, ü ޽ ̸ŭ ´ٸ ۾ ģ.
( 쵵 WSAEWOULDBLOCK 𸣰ڱ,,,)
׸ ̺Ʈ ó ٶ, SEND RECV ־
....


... 𸣴 ϴ.
ӿ 𸣴...
亯 Ź帳ϴ. ^^;

1.1 帳ϴ.

FD_READ ۿ Ͱ ŵǾ ߻ϴ ޽Դϴ.
1000Ʈ ߴٸ ѹ 1000Ʈ ְ Ͱ 
ɰ ŵ ְ ƴϸ ι Ͱ Ѱ
ŵ ְ ɰ ŵ ֽϴ.

̰ 2  𸣰ڽϴ. Ƹ ƴұ?

·ų ̷ ޽ Ҷ FD_READ ޽ ߻ϰ ׶
recvԼ ؼ ŵ ŭ ޾Ƽ ۿ ϸ ˴ϴ.

FD_READ Ͽ ޽ ޴ ڵ Ʒ
ϼ.

FD_READ ޽ ŵɶ ߻ϴµ FD_WRITE ó
Ŀ ̳, ƴϸ ŷ ٽ
뺸ȴٴ ٸϴ.

ŷ Ȳ̶ ַ sendҶ ߻ϴµ, ƮȲ
̳ Ұ Ȳ մϴ.

͸ ϴٰ ŷ ɸ, ͸ ޽ ť
ξٰ FD_WRITE޽ ־ .

UDP ڽ IP

UDP ڽ IP ..

ڽ IP ´ٴ° TCP Connection ǰ
Ǿ.. ̽ ش IP ´ٴ¶̱ .. (??)

.. ̳׿

ƹư Ͱ IP ִٴ° ƽÁ.
ڸ PPP Ǿְ, Lan ī尡 ־
Ʈ Ǿ ,
ڽ IP Ѵٸ PPP IP ְ,
Ʈ IP ֽϴ.
̷ ƴ϶ ī尡 ְ..
ϱ⶧ IP Ǵ° ϴ.

׷ TCP Ŀ ڵ  ̽
Ǿ Ȯ ش ̽ IP  Ǿ ֽϴ.
׷ UDP getsockname() ᵵ "0.0.0.0" ƿð̴ϴ..

Ʈ ڽ ּҰ 192.0.0.1 .. Ʈ
Ŭ̾Ʈ ڽ Ϳ .. 192.0.0.1 ,
PPP  Ͱ ϸ.. ڽ ּҴ PPPκ
°.

UDP , ̽ ۵
ֽϴ..
̷ .. ᰰ UDP ڵ ̿
ڽ IP ° ϴ. ( ˰ ֽϴ)

ڽ IP ߰ڴ.. Ѵٸ..

ڽ IP ̾Ƽ.. Ѱ ..
ڽ IP Ʈ ִ ҽ.. Ʒ ٿϴ..

char buf[100];
gethostname (buf, 100);
HOSTENT *p;
p=gethostbyname(buf);

struct in_addr *ptr;
char **listptr=p->h_addr_list;

switch(p->h_addrtype) {
case AF_INET:
while((ptr=(struct in_addr *) *listptr++) != NULL) {
printf("%s\n", inet_ntoa(*ptr));

}
}

- Testors

Direct Play ǽؼ,
TCP/IP ̿Ͽ α׷ ¥ ϰ ֽϴ.
( Ʈũ ⺻ 𸣰 ִ ϴٸ...)
׷... Ϸ ϴ IP TCP ƴϸ IP UDP
ϰڽϴ.

UDP ӵ
TCP پ ӵ .

˰ ֽϴ. ׷
ϰڽϴ. Ե ˰ ð?
ǰ TCP ̿Ͽ α׷ §ٰ ϴµ  α׷ ׷?
, UDP ؼ α׷ ¥ 찡 ֱ ִ?

Ϲ α׷ TCP մϴ.
Ÿ Ǵ ͵̱ .
ӵ ״ ŵ ...

TCP Ÿ ϴ ̶ Ϳ
UDP Ǵ Ȳ ְ.
״ ߿ Ÿ, Ϻ ҽǵǾ Ÿ
ٷ մϴ.

Ƹ Ÿũ κ ä̳ IDȮε UDP ϴ ......

Ÿ ߿伺 Ͻð ӵ Ͻô
......

ȳϼ ̰游 Դϴ.
ܱ ӵ ũ3
ӿ UDP Ȱϴ ߼ Դϴ.
Ȯ ڸ ΰ ϴ° ǰڱ.
α ΰ Ⱑ ʿѰ
TCP ϴ.
׸ ij ൿ ġ ÷ ְ 鼭
Դٰ ϴ UDP .
¥ Դ ϴ ̹Ƿ
߰ ѵΰ .
׸ UDP ٸ ݵ Ŷȿ Ŭ̾Ʈ
ð ȭ ٸ ڸ ؾ մϴ.
TCP ٸ ϳ ɺ ϱ
Size ڷ  ϵ̿.

ӿ ҽǵǾ Ǵ Ͷ..
Ʈ Ŀ ̰ ְ..
ҽǵǾ Ǵ Ͷ ٰ ° °..
ũƮǰ ӿ UDP մϴ. (κ񿡼 TCPԴϴ)
ҽǵǾ Ǵ° UDP.. ̿ µ
÷ ֶ׸ֶ ִ.. ° Ͼ.
Ⱑ ʴ ӵ ֽϴٸ..
׷ ; ʰ..?

̶ ϼ,
UDP ӿ ʿ ִ ׷?ó ٴ° Դϴ.
׷ ִ ڵ常 lightϰ ۼشٸ
ŸӰӿ UDP TCP ξ ݴϴ..
UDP
Ŷ ҽǿ û/ ׿ ó ְ ˴ϴ.

׸ Ŷ ˻ϴ°͵ ʿմϴ.
(UDP Ŷ ⵵ ϴϱ.. ϸ鼭 ׳ ų ʴ´ٴ
Դϴ)

ó ϸ鼭 UDP
TCP Ŷ  ۴ٴµ ֽϴ.
ظ ùķ̼ǰ TCP ߴٰ ڵ
÷ غ ϰ.
׸ ߿Ѱ ÷̽ Ŷҽ Ͼ Ȯ ſ ٴ Դϴ.
и, Ͼ Ͼϴٸ ׿ ó ɸ ϸ ϴ
TCP ְ ˴ϴ.

ƹư.. TCP UDP Ĵ  Ŀ ٸ
ظ ׷ ӵ 1000 TCPε
մϴٸ.. (̻ Ǹ UDP ° ؾ ϰ.. Ƹ µ

UDP ˰ ֽϴ...)
ŸũƮ TCPδ ֽϴ.
ð Ŷ ٽ UDP, ƴϸ TCP ڳ׿.

׸.. UDPٷ°Ͱ ׿ ȭ ó.. ƴϴ..
Ʈ α׷ ó Ͻô°Ŷ ϴ TCP Ẹô° ϳ׿.

- Testors

ps. E Դϴ. ֽŰó TCP ϳ׿.

мغ TCPԴϴ.. ^^;
׸ Ʒۿ Ǵ Ͷ..
ӱ ӿ ij ġ ð
Ͱ ġ ͸ մϴ.
¥ Ҷ ǥ ƴ ǥ
ؾ մϴ. (ȭ ȵǹǷ ̷ ؼ ַ ϴ°.)
ؼ ġ ǥ µ ǥ õǸ鼭
( ̷ ִ ϴ ͷ
ؾ߰.) ٽ ŵǴ .
̷ ġ UDP ǵ ϴ.
ϴ õ ӿ ..
__
̰游

ƴϿ. ʹ 亯 ƴ϶....Դ
ʹ 亯̾ϴ. ȣ.
.
̷ ڲ ˼...
Ⱑ ̰ŵ...
ð µ å ̰ ־.. ̷
ġұϰ ϴ.
Ȥ ׷ٸ TCP UDP ֽϱ?
α׷ TCPԼ writeԼ
UDPԼ sendto ֳ?
׷ 亯 Ź帳ϴ.
ȭ!
ٹ.

ȳϼ.

tcp udp .
α׷ ̿ ϱ.
׷ ٷ ɷ ˰ ֽϴ.
ÿ Ϸ, δٸ 2 ʿմϴ.
ٸ ݷ ǰ.

׷.

UDP 8Ʈ̰ TCP 20ƮԴϴ.
IP̾ . (20Ʈ)
ᱹ.. TCP 40Ʈ ǰڳ׿
.. TCPǰ ŶȮΰ ֱ ..
Ŷ ٸ͵鵵 Դٰ .
Ƹ 2ΰ 5ΰ ϴٸ..
ð UDP ſ ϴ.
ؼ ŸӼ 䱸Ǵ
UDP ° ϴ.
Ÿó.. Ǹ UDP..ó ϸ TCP ϴ° ڳ׿
ȳϼ...

Ȥ ipϰ Ʈ ũ ϴ
˼ ...(ڽ ǻͿ)
ip ʾƵ Ǵµ...
Ʈ ũ ؾ ϰŵ...
Ʈ ip Ϸ ˾ƾ Ѵٰ ؼ....
Ȥ Ʈ ũ Ҽ ִ ˰ ø
ּ.....

ذ Ȱ....
Ϲ ũ зǴ κи 1 ä ˴ϴ.
10 CŬ 255.255.255.0 ̰.
network ĺ̰. ڿ ȣƮ ĺմϴ.