ù Ϸ..
  ؾ?
 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 ĺ̰. ڿ ȣƮ ĺմϴ.