°Á Àü Å¿ÀÀÇ Àâ´ã>
Ç÷¯±×ÀÎ(pluginn@naver.com) ´ÔÀÇ .NET ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö °ÁÂ, À̹ø¿£ ¼¼¹øÂ° ½Ã°£ÀÔ´Ï´Ù.
°Á ½ÃÀÛ >
¾Õ¼
¿Ã¶ó¿Â °Á¸¦ º¸°í »ó´çÈ÷ µüµüÇÔÀ» ´À²¼½À´Ï´Ù. ±×·¡¼ Á» ´õ ºÎµå·´°Ô ÀÛ¼ºÇØ º¸°íÀÚ ±ÛÀÇ ½ºÅ¸ÀÏÀ» Á¶±Ý ¹Ù²ãºÃ½À´Ï´Ù. º¸½Ã¸é¼ ¾Æ½Ã°ÚÁö¸¸ °Á¸¦ ¾²´Â Àúµµ ¸¹ÀÌ ºÎÁ·ÇÕ´Ï´Ù. ÇÏÁö¸¸ Àúº¸´Ù Á¶±Ý ´Ê°Ô ½ÃÀÛÇϽô ºÐµé²²´Â ºÐ¸í Âü°í°¡ µÇ´Â ±ÛÀÌ µÉ ²®´Ï´Ù.
¼ÒÄÏ »ý¼ºÇϱâ
À̹ø
°Á¿¡¼´Â Àú¼öÁØ Å¬·¡½ºÀÎ System.Net.Sockets.Socket Ŭ·¡½º¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë¾Æº¸°í,1,2°Á¿¡¼ ¹è¿î Áö½ÄÀ» Åä´ë·Î ½ÉÇÃÇÏ°Ô ¼ÒÄÏ Åë½ÅÀÌ °¡´ÉÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸°Ú½À´Ï´Ù. ½Ã°£ÀÌ
µÇ¸é °£´ÜÇÑ µ¥ÀÌÅ͸¦ ¹ß¼ÛÇÏ¿© ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£¿¡ µ¥ÀÌÅͰ¡ Àü¼ÛµÇ´Â °Íµµ È®ÀÎÇØ
º¸°Ú½À´Ï´Ù.
ÇÁ·Î±×·¥¿¡¼ ¼ÒÄÏÀº IP ¿Í Port ·Î ±¸¼ºµÈ ³í¸®ÀûÀÎ ¿¬°áÁ¡(Á¾´ÜÁ¡) À̶ó°í ¸»¾¸µå·È½À´Ï´Ù.
(¹°·Ð IP ¿Í Port ·Î ±¸¼ºµÈ ¼ÒÄÏ °´Ã¼ÀÔ´Ï´Ù.) ±×¸®°í, 1°Á¿¡¼ ³ª¸§´ë·Î ³×Æ®¿öÅ©ÀÇ ¿ë¾î¿¡ ´ëÇØ ½É¿ÀÇÏ°Ô Á¤ÀÇÇØ º¸¾Ò½À´Ï´Ù.
±â¾ïÀ» µÇ ´õµë¾î º¸¸é,
"¼·Î ¿ø°Ý(¶Ç´Â ³»ºÎ)À¸·ÎºÎÅÍ ¶³¾îÁ® ÀÖ´Â ÄÄÇ»ÅͰ£¿¡ ¼ÒÄÏÀ̶ó´Â ¿¬°áÁ¡ (Á¾´ÜÁ¡)À» ÅëÇØ TCP/IP (TCP ȤÀº UDP )·Î ¿¬°áµÇ¾îÁ® ÀÖ´Â ÇÑ °³ ÀÌ»óÀÇ ³ëµå(ÄÄÇ»ÅÍ)"
À̶õ ³»¿ëÀ̾ú½À´Ï´Ù. ±×·³ ¿ì¸®°¡ Áغñ ÇØ¾ßÇÒ °ÍÀ» Á¤¸®ÇØ º¸°Ú½À´Ï´Ù.
IPAddress °´Ã¼ , Port(intÇü) ¸¸ ÀÖÀ¸¸é ¼ÒÄÏÀ» ¸¸µé ¼ö ÀÖ°ÚÁÒ? ¼ÒÄÏÀ» »ý¼ºÇϴ Ŭ·¡½º´Â À̹Ì
System.Net.Sockets ³×ÀÓ½ºÆäÀ̽º¿¡¼ Á¦°øµÇ´Ï±î ¸»ÀÌÁÒ. ±×¸®°í µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¸¦ ¸¸µé¾î¾ß ÇϰÚÁÒ. º¸±â ÆíÇÏ°Ô ¾Æ·¡ ±×¸²À¸·Î Á¤¸®ÇØ º¸¾Ò½À´Ï´Ù.
¼¹öÃøÀÇ ¼ÒÄÏÀ» ¼³¸íµå¸®¸é Ŭ¶óÀÌ¾ðÆ®µéÀÌ Á¢¼ÓÇÒ ¼ö ÀÖµµ·Ï ÀÚ½Å(¼¹ö)ÀÇ ·ÎÄà IP¿Í Port ¸¦ ÁöÁ¤ÇÑ ¼ÒÄÏ ÀνºÅϽº°¡ µÇ°Ú±¸¿ä.. ClientÃø ÀÇ ¼ÒÄÏÀº ÀÚ½ÅÀÌ Á¢¼ÓÇÒ ¼¹öÀÇ ¼Ó¼º Áï, ¼¹ö¿¡¼ Á¢¼ÓÀ» Çã¿ëÇÒ ¼ÒÄÏÀÇ IP,Port ¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÁöÁ¤ÇØ Áà¾ßÇÕ´Ï´Ù. Socket Option À̶ó°í ½áÀÖ´Â ºÎºÐµéÀº
TCP/IP¿¡¼ Áö¿øÇÏ´Â IP ¹öÀüÀ̳ª ÇÁ·ÎÅäÄÝ Çü½ÄµéÀ» ÁöÁ¤ÇØ ÁÙ¼öÀÖ´Â Socket ÀÇ ÀÎÀÚ°ªµé ÀÔ´Ï´Ù.
ÀÌÁ¦ Socket Ŭ·¡½º¿¡ ´ëÇØ Á» ´õ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
System.Net.Sockets ÀÇ Socket Ŭ·¡½º
.Net ¿¡¼´Â Àú¼öÁØÀÇ Socket Ŭ·¡½º ¿Ü¿¡µµ °í¼öÁØÀÇ TCP , UDP Åë½ÅÀ» À§ÇÑ Å¬·¡½º¸¦ º°µµ·Î Á¦°øÇÕ´Ï´Ù. °í¼öÁØÀÇ ¼ÒÄÏÅë½ÅÀ» À§ÇÑ Å¬·¡½ºÀÇ °æ¿ì´Â Àú¼öÁØÀÇ ¼ÒÄÏ Å¬·¡½º º¸´Ù Á» ´õ Á÷°üÀûÀ̰í
(Tcp ÀÇ °æ¿ì ¼¹öÃø¿¡¼´Â TcpListener ·Î »ý¼ºµÈ °´Ã¼·Î Ŭ¶óÀ̾ðÆ®ÀÇ Á¢¼ÓÀ» ±â´Ù¸®°í, Ŭ¶óÀÌ¾ðÆ®´Â TcpClient Ŭ·¡½º¸¦ ÀÌ¿ëÇØ °´Ã¼¸¦ »ý¼ºÇÏ¿© Á¢¼ÓÀ» ½Ãµµ ÇÏ¸é µÇ¸ç,UdpÀÇ °æ¿ì UdpClient ¸¦ ÀÌ¿ëÇØ ¼¹ö/Ŭ¶óÀ̾ðÆ®ÀÇ ¿ªÇÒÀ» ´ÙÇÏ°Ô µË´Ï´Ù.) Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°ø ÇÕ´Ï´Ù.
Socket °ú´Â ´Þ¸® ÀϹÝÀûÀ¸·Î ½ºÆ®¸² ÇüÅ·Πµ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ°Ô µÇ´Âµ¥,(¹ÙÀÌÆ® Çüŵµ °¡´ÉÇÕ´Ï´Ù.) À̶§ NetworkStream Ŭ·¡½º¸¦ ÀÌ¿ëÇØ¼ ½ºÆ®¸² ÇüÅ·ΠÁÖ°í ¹Þ½À´Ï´Ù. °í¼öÁØ Å¬·¡½º¿¡¼´Â °´Ã¼.AcceptSocket() ¶ó´Â ¸Þ¼Òµå¸¦ Á¦°øÇÏ¿© Socket °´Ã¼¸¦ ȹµæ ÇÏ¿© Á÷Á¢ Socket Ŭ·¡½ºÀÇ °´Ã¼·Î ¹Þ¾Æ¼ ó¸®ÇÒ ¼ö ÀÖµµ·Ï À¯¿¬¼ºµµ Á¦°øÇÕ´Ï´Ù. ÀÏ´Ü ¿ì¸®´Â Socket À» À§ÁÖ·Î °øºÎÇØ ³ª°¡°Ú½À´Ï´Ù.
System.Net.Sockets ÀÇ Socket Ŭ·¡½º°¡ °®´Â ¿É¼ÇÀ» »ìÆìº¸¸é,
Socket(AddressFamily , SocketType , ProtocolType) ÀÇ ½Ã±×³ÊÃĸ¦ °¡Áö´Â »ý¼ºÀÚ¸¸ °¡Áý´Ï´Ù.
AddressFamily ¿É¼Ç |
System.Net.Sockets.AddressFamily ¿°ÅÇü |
|
AddressFamily ¿É¼ÇÀº ´Ù·ç°ÔµÉ ¼ÒÄÏÀÇ ÁÖ¼Ò Ã¼°è¸¦ ¼±ÅÃÇÕ´Ï´Ù.¿©±â¼ ¿ì¸®°¡ »ç¿ëÇÒ °ÍÀº InterNetworkÀÔ´Ï´Ù. Á¤È®È÷ ¸»Çϸé
AddressFamily.InterNetwork °¡ µÇ°Ú½À´Ï´Ù. À̰ÍÀº IPv4 ¹öÀüÀ¸·Î
ÇöÀç ¿ì¸®°¡ »ç¿ëÇϱâ À§ÇØ ¼ÂÆÃ µÇ¾îÀÖ´Â IP ü°èÀǸ¦ ¸»ÇÕ´Ï´Ù.¹Ù·Î ¾Æ·¡ InterNetworkV6 ¶ó°í º¸À̴µ¥ ¹Ù·Î ¾ÕÀ¸·Î ¿ì¸®°¡ »ç¿ëÇÒ
128bit ÀÇ ÁÖ¼Òü°è¸¦ °¡Áö°í ÀÖ´Â ¹æ½ÄÀÇ ¿°ÅÇü °ªÀÔ´Ï´Ù.
¸¹À̺¸´ø IPX µîµî ¸¹Àº ¿É¼Çµéµµ º¸ÀÔ´Ï´Ù.
|
SocketType ¿É¼Ç |
System.Net.Sockets.SocketType ¿°ÅÇü |
|
SocketType ¿É¼Ç¿¡¼´Â ÇÁ·ÎÅäÄÝÀÌ Åë½ÅÇÒ ¼ÒÄÏ Å¸ÀÔÀ» ÁöÁ¤ÇÕ´Ï´Ù.TCP/IP¿¡¼ »ç¿ëµÉ ÇÁ·ÎÅäÄÝÀº Å©°Ô TCP ¿Í UDP ¹æ½ÄÀÌ ÀÖ´Ù°íÇß¾ú½À´Ï´Ù. ¿©±â¼ TCP ¹æ½ÄÀº Stream À¸·Î ¿°ÅÇüÀ¸·Î Á¤ÀǵǾîÀÖ°í, UDP ´Â Dgram À¸·Î µÇ¾îÀÖ½À´Ï´Ù. Raw Çü ŸÀÔÀÇ °æ¿ì´ÂICMP ¿Í °°Àº ÇÏÀ§ ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÑ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ½Ç ¶§ÁöÁ¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
|
ProtocolType ¿É¼Ç |
System.Net.Sockets.ProtocolType ¿°ÅÇü |
|
¿©±â¼´Â ¼ÒÄÏÀÇ ÇÁ·ÎÄÚÅç Çü½ÄÀ» ¿°ÅÇü À¸·Î ÀúÁ¤ÇØ ÁÙ ¼ö ÀÖ½À´Ï´Ù. TCP ÀÎÁö UDP ÀÎÁö SocketType¿¡¼ Àá±ñ ¼³¸íÇß´ø,
Raw Çü½Äµµ º¸À̳׿ä. ¿©±â¼ Áß¿äÇÑ°Ç SocketType À̳ª Address
Family ÀÇ ¿É¼Ç¿¡¼ ÁöÁ¤µÈ ÁÖ¼Òü°è¿Í ¸ÅĪÀÌ µÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. SocketType.Stream °ú ProtocolType.Tcp ¿Í °°ÀÌ È£È¯µÇ´ÂProtocolTypeÀ» Á¤È®È÷ ¼³Á¤Çϴ°ÍÀÌ Áß¿äÇÕ´Ï´Ù.
(¾Æ·¡ ¿¹¸¦ Âü°íÇϼ¼¿ä)
|
[TCP ¸¦ ÀÌ¿ëÇÒ ¼ÒÄÏ ¼³Á¤]
Socket tcpSocket = new
Socket(AddressFamily.InterNetwork ,SocketType.Stream
,ProtocolType.Tcp);
[UDP ¸¦ ÀÌ¿ëÇÒ ¼ÒÄÏ ¼³Á¤]
Socket udpSocket = new Socket(AddressFamily.InterNetwork ,SocketType.Dgram ,ProtocolType.Udp);
ProtocolType¿¡¼ Àá±ñ ¼³¸íÇßµíÀÌ AddressFamily ¿Í SocketType °ú ProtocolType ÀÇ ÀÏÄ¡¼ºÀÌ Áß¿äÇÕ´Ï´Ù. À§ÀÇ ¿¹¿¡¼ ÇöÀç Àü¼¼°è´Â IPv4 ü°è¸¦ ÀÌ¿ëÇϰí Àֱ⠶§¹®¿¡ AddressFamily.InterNetwork ¸¦
ÀÌ¿ëÇß½À´Ï´Ù. TCP ÀÇ °æ¿ì SocketType °ú ProtocolType ÀÇ °¢ Çü½Ä¿¡ ¸Â°Ô ÀÏÄ¡½ÃÄ×´Ù´Â Á¡¸¸
ÀÎÁö ÇÏ½Ã¸é ¹¹ Ưº°È÷ ¾î·Á¿î°ÍÀº ¾ø°Ú½À´Ï´Ù.
±×·³ Áö±Ý±îÁö ¹è¿î Áö½ÄÀ¸·Î ¼ÒÄÏ Å¬·¡½º¸¦ °£´ÜÇÏ°Ô ÀÛ¼ºÇÏ°í ´ÙÀ½ ¼¼¼Ç¿¡¼ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¸¦
±¸¼ºÇصµº¸·Ï ÇϰڽÀ´Ï´Ù. Áö±Ý±îÁö ¼³¸íÀ» Åä´ë·Î ÀÛ¼ºµÈ ¼Ò½ºÀÌ´Ï ¼³¸íÀº ÁÖ¼®À¸·Î ´ë½Å ÇϰڽÀ´Ï´Ù.
using System;
using System.Net;
using System.Net.Sockets;
namespace SocketCreate
{
class SocketClass
{
[STAThread] static void Main(string[] args)
{
// ¼¹ö·Î »ç¿ëµÉ ÄÄÇ»ÅÍÀÇ IPAddress °´Ã¼ »ý¼º Çö PC ¸¦ ¼¹ö·Î ÀÌ¿ëÇÕ´Ï´Ù.
IPAddress ipaddr = Dns.Resolve("localhost").AddressList[0];
//IPAddress ipaddr = IPAddress.Parse("127.0.0.1"); ÇØµµ »ó°ü¾ø½À´Ï´Ù.
// ¼ÒÄÏ¿¡ ÀÌ¿ëµÉ ¿¬°á Á¾Á¡À» »ý¼ºÇÕ´Ï´Ù. Æ÷Æ®´Â 8000¹ø
IPEndPoint ipend = new IPEndPoint(ipaddr,8000);
// ¼ÒÄϰ´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
Socket socket = new Socket(AddressFamily.InterNetwork ,
SocketType.Stream,ProtocolType.Tcp);
socket.Bind(ipend); // À§¿¡¼ »ý¼ºÇÑ ¿¬°áÁ¾Á¡À» bind ÇÕ´Ï´Ù.
Socket newSocket = socket.Accept();// Ŭ¶óÀ̾ðÆ®ÀÇ Á¢¼ÓÀ» ±â´Ù¸³´Ï´Ù.
}
}
}
|
0 ~ 1023 ±îÁö´Â ½Ã½ºÅÛ Æ÷Æ®·Î¼ ½Ã½ºÅÛÀÌ »ç¿ëÇÏ°ÔµÉ Æ÷Æ®·Î ¿¹¾àµÇ¾îÁ® ÀÖ´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù.1024 ~ 49151 ±îÁö°¡ »ç¿ëÀÚ Æ÷Æ®°¡ µË´Ï´Ù. MSSQL À̳ª ³×Æ®¿öÅ© °ÔÀÓµî ³×Æ®¿÷ Åë½ÅÀÌ ÇÊ¿ä·ÎÇÏ´ÂÀÀ¿ëÇÁ·Î±×·¥µéÀÌ »ç¿ëÇÏ°ÔµÉ ¹üÀ§ À̸ç , ¿ì¸®°¡ ÀÛ¼ºÇÏ°ÔµÉ ÇÁ·Î±×·¥µéµµ Àú ¹üÀ§¾È¿¡¼ Æ÷Æ®¸¦
ÁöÁ¤ÇÏ¿© »ç¿ëÇÏ°Ô µË´Ï´Ù.
¼ÒÄÏ Åë½ÅÀ» À§ÇÑ ¼¹ö / Ŭ¶óÀÌ¾ðÆ® ±¸¼ºÇϱâ
ÀÌÁ¦ ¼³¸íÇÒ ³»¿ëµéÀº ¼ÒÄϳ¢¸® ¼·Î Åë½ÅÇϱâ À§ÇÑ °£´ÜÇÑ ±¸¼ºµµÀÔ´Ï´Ù. ¹°·Ð ¾ÕÀ¸·Î ¼ÒÄÏÀ» ÀÌ¿ëÇØ¼ ÀÚÁÖ °³¹ß ÇÑ´Ù¸é ¸Ó¸®¿¡ ÀÚµ¿À¸·Î ±×·ÁÁö±â ¶§¹®¿¡ ±¸Áö ±¸»óÇϰí ÇҰ͵µ ¾ø½À´Ï´Ù.
asp³ª asp.net À» óÀ½ ¹è¿ï¶§ DB ¼¹ö¸¦ Á¢¼ÓÇØ¼ µ¥ÀÌÅ͸¦ °¡Á®¿À´Â À§ÇØ ±× Àü¿¡ ÀÛ¾÷ÇØ¾ß Çß´ø ÀÏ·ÃÀÇ °úÁ¤Ã³·³, ¼ÒÄÏ Åë½ÅÀ» À§Çؼµµ ¸¶Âù°¡Áö·Î ÀÏ·ÃÀÇ ÀýÂ÷°¡ ÇÊ¿äÇÕ´Ï´Ù.
 |
Socket À» ÅëÇÑ µ¥ÀÌÅÍ Åë½ÅÀº ¸ðµÎ Byte ¸¦ ÀÌ¿ëÇÏ¿© Åë½ÅÀ» ÇÏ°Ô µË´Ï´Ù. ±×·¡¼ µ¥ÀÌÅÍ Àü¼Û½Ã Byte[] ¹è¿¿¡ µ¥ÀÌÅÍ ¸¦ ÀÔ·ÂÇϰí Send/Receive ¸¦ ÇÏ°Ô µË´Ï´Ù.
Âü°í·Î Obj´Â ¼ÒÄÏ °´Ã¼¸¦ ¸»ÇÕ´Ï´Ù.
|
 |
¼ÒÄÏ Áغñ | |
IPAddress , Port |
¼¹öÃø IPAddress , Port |
¼ÒÄÏ Áغñ | |
¼ÒÄÏ °³¹æ/¹ÙÀεå | |
Socket() ¼¹öÃø ¿É¼Ç ¼³Á¤ Socket.Bind(IPAddress,Port); |
Obj.Connect(IPaddress,Port); |
¿ø°ÝÈ£½ºÆ® ¿¬°á | |
¿¬°á ¸®½º´× | |
Socket.Listener(); |
Obj.Send() / Obj.Receive(); |
µ¥ÀÌÅÍ ¼Û.¼ö½Å | |
Client ¿¬°áÇã¿ë | |
Socket.Accept(); |
Obj.Shutdown(); Obj.Close(); |
¼ÒÄÏ Á¾·á |
µ¥ÀÌÅÍ ¼Û¼ö½Å | |
Obj.Send()/Obj.Receive() |
|
|
¼ÒÄÏ Á¾·á |
Obj.Shutdown(); Obj.Close(); |
|
|
¼¹öÃøÀÇ
¼ÒÄÏ °³¹æ ¹× Ŭ¶óÀÌ¾ðÆ® ÃøÀÇ ¼ÒÄÏ Á¢¼ÓÀ» À§ÇÑ Áغñ¸¦ ÇÑ´«¿¡ º¼ ¼ö ÀÖ°Ô Á¤¸®ÇØ º¸¾Ò´Âµ¥ Á¤¸®°¡ Àß µÇ¾ú´ÂÁö ¸ð¸£°Ú½À´Ï´Ù. Á¦°¡ ¼ø¼ ¿·¿¡ ¸Þ¼ÒµåµéÀ» ¸ðµÎ ÀÛ¼ºÇØ µÎ¾ú½À´Ï´Ù.¼ø¼¿¡ ¸Â°Ô ¸Þ¼Òµå¸¦ º¸½Ã¸é ½±°Ô ÀÌÇØÇÏ½Ç ¼ö ÀÖÀ»²®´Ï´Ù ¿¬°áÀº Connect() ¸Þ¼Òµå¸¦ µ¥ÀÌÅÍ ¼Û/¼ö½ÅÀº Send()/Receive() ¸¦ ´Ü¾î ¶æ¸¸ ´ëÃæ º¸¾Æµµ ¹«½¼ ±â´ÉÀ» ÇÏ´Â ¸Þ¼ÒµåÀÎÁö ½±°Ô ÀÌÇØ °¡¸®¶ó »ý°¢ µË´Ï´Ù. ÀÌ ±×¸²¿¡¼ Áß¿äÇÑ °ÍÀº ¸Þ¼Òµå º¸´Ù ,ÀÏ·ÃÀÇ ¼ø¼µéÀÔ´Ï´Ù ¼ÒÄÏÀÇ »ý¼ººÎÅÍ ¼Ò¸ê±îÁöÀÇ °úÁ¤À» ¼÷Áö ÇϽñ⠹ٶø´Ï´Ù. ¸Þ¼ÒµåµéÀº ¾îÂ÷ÇÇ ÄÚµùÇØ ³ª°¡¸é¼ ¼÷ÁöÇÏ°Ô µÉ°ÍÀÔ´Ï´Ù.
¼ÒÄÏÀ»
ÅëÇØ µ¥ÀÌÅͰ¡ Àü¼ÛµÇ´Â ½Ã°£/Ŭ¶óÀÌ¾ðÆ®°¡ Á¢¼ÓµÇ´Â ½Ã°£µî, ¼ÒÄÏÀÌ ¾î¶² ÀÛ¾÷À» ÇÏ´Â ½Ã°£¿¡´Â ¼ÒÄÏÀÌ Blocking µË´Ï´Ù. Áï ¾²·¹µå°¡ µ¶Á¡µÇ¹Ç·Î ¾Æ¹«ÀÛ¾÷À» ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ·± »óȲÀ» µ¿±âÈ µÇ¾ú´Ù°í ÇÕ´Ï´Ù. ÇѸíÀÇ Ã³¸®°¡ ³¡³¯¶§ ±îÁö µ¿±âÈ ÇÏ¿© ó¸®ÇØ¾ß ÇÒ °æ¿ìµµ ÇÊ¿äÇϰÚÁö¸¸, ¿©·¯ Ŭ¶óÀÌ¾ðÆ®°¡ µ¿½Ã¿¡ Á¢¼ÓÇϰí 󸮵ǵµ·Ï ºñµ¿±âÈ µÇ¾î ó¸® ÇØ¾ßÇÒ °æ¿ìµµ ¸¹½À´Ï´Ù. ±×·¡¼ Socket Ŭ·¡½º¿¡¼´Â ºñµ¿±â¿ë Á¢¼Ó , ¼Û/¼ö½Å¿ë ¸Þ¼Òµé¸¦ µû·Î Á¦°ø ÇÕ´Ï´Ù. ¸Þ¼Òµå À̸§¸¸ °£´ÜÈ÷ ¹Ù²ãÁÖ¸é ÇØ°á µÇ¹Ç·Î ÀÏ´Ü µ¿±âÈÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº» ÈÄ Â÷Â÷ ¾Ë¾Æº¸µµ·Ï ÇϰڽÀ´Ï´Ù.
¼¹ö ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö Çϱâ
À§ÀÇ ¼ø¼ÀÇ °³³äÀ» Àß ÀÌÇØ ÇÏ¼Ì´Ù¸é ´ÙÀ½°ú °°ÀÌ ÄÚµù¿¡ µé¾î°©´Ï´Ù. ¼¹ö/Ŭ¶óÀÌ¾ðÆ® ¸ðµÎ TCP ¸¦ ÀÌ¿ëÇß½À´Ï´Ù.
using System;
using System.Net;
using System.Net.Sockets;
namespace ServerSide
{
class sSocket
{
[STAThread]
static void Main(string[] args)
{
Socket ssocket , csocket;
byte[] rData = new byte[1024];
byte[] sData = new byte[1024];
IPAddress ipaddr = IPAddress.Parse("127.0.0.1");
IPEndPoint endpoint = new IPEndPoint(ipaddr,8000);
ssocket = new Socket(AddressFamily.InterNetwork , SocketType.Stream ,
ProtocolType.Tcp);
ssocket.Bind(endpoint);
ssocket.Listen(5);
Console.WriteLine("Ŭ¶óÀ̾ðÆ®ÀÇ ¿¬°áÀ» ±â´Ù¸³´Ï´Ù..");
while(true)
{
csocket = ssocket.Accept();
if (csocket.Connected)
{
while(true)
{
int rDataLength = csocket.Receive(rData);
if(rDataLength
> 0)
{
Console.WriteLine(System.Text.Encoding.UTF8.GetString(rData));
}
}
}
}
}
}
}
|
Ŭ¶óÀÌ¾ðÆ® ¼ÒÄÏ ÇÁ·Î±×·¡¹Ö Çϱâ
using System;
using System.Net;
using System.Net.Sockets;
namespace ClientSide
{
class cSocket
{
[STAThread]
static void Main(string[] args)
{
Socket csocket;
byte[] sData = new byte[1024];
byte[] rData = new byte[1024];
string inputStr;
IPAddress ipaddr = IPAddress.Parse("127.0.0.1");
IPEndPoint endpoint = new IPEndPoint(ipaddr,8000);
csocket = new Socket(AddressFamily.InterNetwork ,SocketType.Stream ,
ProtocolType.Tcp);
Console.WriteLine("¼¹öÀÇ ¿¬°áÀ» ½ÃµµÇÕ´Ï´Ù.[¿£Å͸¦ Ä¡¸é ¿¬°áµË´Ï´Ù.]");
Console.ReadLine();
csocket.Connect(endpoint);
if (csocket.Connected)
{
Console.WriteLine("¼¹öÀÇ ¿¬°áÀÌ ¼º°øÇß½À´Ï´Ù.");
Console.WriteLine("Àü¼ÛÇÒ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇØ Áֽʽÿä");
while(true)
{
Console.Write("Àü¼ÛÇÒ µ¥ÀÌÅÍ]");
inputStr = Console.ReadLine();
if (inputStr.Trim() != String.Empty)
{
sData = System.Text.Encoding.UTF8.GetBytes(inputStr);
csocket.Send(sData);
}
}
}
else
{
Console.WriteLine("¼¹öÀÇ ¿¬°áÀÌ ½ÇÆÐ µÇ¾ú½À´Ï´Ù.");
}
}
}
}
|
Àú´Â ¾Æ·¡¿Í °°ÀÌ ÇÁ·ÎÁ§Æ®¿¡ ÇϳªÀÇ ÇÁ·ÎÁ§Æ®¸¦ Ãß°¡ÇÏ¿© 2°³ÀÇ ÇÁ·ÎÁ§Æ®·Î ÄÚµùÇß½À´Ï´Ù.
¾Æ·¡´Â 2°³ÀÇ ÇÁ·ÎÁ§Æ®¸¦ µ¿½Ã¿¡ ÄÄÆÄÀÏ ÇϱâÀ§ÇØ ¾Æ·¡¿Í °°ÀÌ ¼³Á¤Çß½À´Ï´Ù. Âü°íÇϼ¼¿ä.
½ÇÇàÀ» ÇÏ¸é ¾Æ·¡¿Í °°ÀÌ Å¬¶óÀÌ¾ðÆ® / ¼¹öÃø ½ÇÇàȸéÀÌ µ¿½Ã¿¡ º¸ÀÌ°Ô µË´Ï´Ù. ¿£Å͸¦ ÀÔ·ÂÇÏ¿©
¼¹ö¸¦ Á¢½»ÇÕ´Ï´Ù.
ÀÌÁ¦ Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ ¼¹ö¿¡ Á¢¼ÓÀ» ¿Ï·á ÇÏ¿´½À´Ï´Ù. text¸¦ ÀÔ·ÂÇÏ¿© ¼¹öÃø¿¡ ¼ö½ÅÀÌ Àߵdzª
È®ÀÎÇÕ´Ï´Ù.
hi ¸¦ ÀÔ·ÂÇÏ´Ï ¼¹öÃø¿¡¼ ¼ö½ÅÀÌ Àß µË´Ï´Ù. ±×·±µ¥ ´Ù½Ã hi ¶ó°í ÃÆ´Âµ¥.. óÀ½ ¹ß¼ÛµÈ hi ¿Í
»ó´çÈ÷ ¸¹Àº °ø°£À» ¶ç°í ³ª¼ ±×´ÙÀ½ hi °¡ Ãâ·ÂµÇ¾ú½À´Ï´Ù. ¿Ö ±×·²±î¿ä? ´ÙÀ½ °Á¶§ ÇØ´äÀ»
¾Ë·Áµå¸®°Ú½À´Ï´Ù. ´«½ä¹Ì°¡ ÀÖÀ¸½ÅºÐµéÀº ¹ú½á ´«Ä¡Ã¤¼ÌÀ»Áöµµ ¸ð¸£°Ú³×¿ä.
Á¤¸» °£´ÜÇÑ
ÄÚµùÀ» ÇØº¸¾Ò´Âµ¥.. ¾ÕÀ¸·Î ÄÚµùÇØ ³ª°¡´Âµ¥ Á¤¸» Áß¿äÇÑ ¿¹Á¦ÀÔ´Ï´Ù. À§ÀÇ ÄÜ¼Ö ¾îÇø®ÄÉÀ̼ÇÀ¸·Î
ÀÛ¼ºµÈ ¼ÒÄϼҽº¸¦ Åä´ë·Î ¿¹¿Ü󸮳ª ÀÎÅÍÆäÀ̽º , Ŭ·¡½ºÈ ÇÏ¿© ó¸®ÇÏ¸é ½Ç¹«¿¡¼
»ç¿ë°¡´ÉÇÑ ÄÄÆ÷³ÍÆ®°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ¹°·Ð ±×Àü¿¡ °ÅÃľßÇÒ ¸î°¡Áö Áö½ÄµéÀÌ Á»´õ
ÇÊ¿äÇϱ¸¿ä.
À̹ø°Á´ ÀÌÁ¤µµ·Î ÇϰڽÀ´Ï´Ù. ´ÙÀ½ °Á¿¡¼´Â À̺¸´Ù Á¶±Ý ´õ Á¤±³ÇÏ°Ô ÄÚµùÀ» Çϰí,
¿¹¿Ü󸮵îÀ» °ÈÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ±×¶§´Â ¼³¸íµµ ÇÔ²² µ¡ºÙ¿© º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
³¡±îÁö °Á ÀоîÁּż °¨»çÇÕ´Ï´Ù.
Back
|