ÀÌ ¹®¼¿¡¼´Â ¿ø°Ý ¼¹ö¿¡ °³Ã¼¸¦ ÂüÁ¶¿¡ ÀÇÇØ ¸¶¼£¸µÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù. °³Ã¼¸¦ ÂüÁ¶·Î ¸¶¼£¸µÇÏ¸é ¼¹ö°¡ Ŭ¶óÀ̾ðÆ®ÀÇ °³Ã¼¸¦ ÄݹéÇÒ ¼ö ÀÖµµ·Ï ·±Å¸ÀÓ¿¡¼ Åõ¸íÇÑ ÇÁ·Ï½Ã¸¦ ¸¸µì´Ï´Ù. ¼¹ö·Î º¸³»Áö´Â °ÍÀº ÇÁ·Ï½Ã»ÓÀ̸ç, ÇÁ·Ï½Ã´Â Ŭ¶óÀÌ¾ðÆ®¿¡ ÄݹéÀ» ¸¶¼£¸µÇÕ´Ï´Ù.
ÀÌ ¹®¼´Â ¼¹ö °³Ã¼, ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥ ¹× Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¼¼ ºÎºÐÀ¸·Î ³ª´µ¾î ÀÖ½À´Ï´Ù. Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¿¡ ÀÌ·¯ÇÑ ³»¿ëÀÌ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.
300951
(http://support.microsoft.com/kb/300951/EN-US/
)
HOW TO: Create a Remote Server Using Visual Basic .NET
300943
(http://support.microsoft.com/kb/300943/EN-US/
)
HOW TO: Create Client Access to Remote Server
¿ä±¸ »çÇ×
´ÙÀ½Àº ±ÇÀå Çϵå¿þ¾î, ¼ÒÇÁÆ®¿þ¾î, ³×Æ®¿öÅ© ÀÎÇÁ¶ó, ±â¼ú ¹× Áö½Ä, ¼ºñ½º ÆÑÀÔ´Ï´Ù.
- Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ¶Ç´Â Windows NT 4.0 Server
- Visual Studio .NET
´ÙÀ½Àº ÀÌ·¯ÇÑ ´Ü°è¸¦ ½ÃµµÇϱâ Àü¿¡ ¾Ë¾Æ¾ß ÇÒ ³»¿ëÀÔ´Ï´Ù.
- Visual Studio .NET
- ³×Æ®¿öÅ· ±âº»
°³Ã¼¸¦ Àü´ÞÇÏ¿© ¿ø°Ý ¼¹ö °³Ã¼ ¸¸µé±â
¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µé±âÀÇ Ã¹ ¹øÂ° ´Ü°è´Â ¼¹ö °³Ã¼¸¦ ¸¸µå´Â °ÍÀÔ´Ï´Ù. ¼¹ö °³Ã¼´Â Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ¼¹ö ÄÄÇ»ÅÍ¿¡¼ ÀνºÅϽº¸¦ ¸¸µé°í Åë½ÅÇÏ´Â ´ë»óÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥Àº Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¸¸µç ÇÁ·Ï½Ã °³Ã¼¸¦ ÅëÇØ ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. »ç¿ëÀÚÀÇ ¼¹ö °³Ã¼´Â Ŭ·¡½º ¶óÀ̺귯¸®(DLL)¿¡ »óÁÖÇÏ°Ô µÇ¸ç À̸§Àº
HelloServer·Î ÇÕ´Ï´Ù. ¶ÇÇÑ °°Àº ÇÁ·ÎÁ§Æ®¿¡¼ Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼¹ö·Î Àü´ÞÇÒ Å¬·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ À̸§Àº
ForwardMe¶ó°í ÇÕ´Ï´Ù. ÀÌ ÇÁ·ÎÁ§Æ®¿¡¼´Â ForwardMe Ŭ·¡½º¸¦ ÂüÁ¶¿¡ÀÇÇØ ¸¶¼£¸µÇϱ⠶§¹®¿¡ ForwardMe Ŭ·¡½º°¡
MarshalByRefObject¿¡¼ »ó¼ÓÇØ¾ß ÇÕ´Ï´Ù.
- Visual Studio .NETÀ» ¿±´Ï´Ù.
- »õ·Î¿î Ŭ·¡½º ¶óÀ̺귯¸® ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µé°í ServerClassRef¶ó´Â À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
- Class1.vb ÆÄÀÏÀÇ À̸§À» ServerClassRef.vb·Î ¹Ù²ß´Ï´Ù.
- ServerClassValue.vb¸¦ ¿°í HelloServer ¹× ForwardMe Ŭ·¡½º¸¦ Ãß°¡ÇÕ´Ï´Ù. µÎ Ŭ·¡½º ¸ðµÎ MarshalByRefObject¿¡¼ »ó¼ÓÇÕ´Ï´Ù. HelloServer Ŭ·¡½º°¡ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÇ´Â ÁÖ Å¬·¡½º°¡ µÉ °ÍÀÔ´Ï´Ù. ForwardMe Ŭ·¡½º´Â Ŭ¶óÀ̾ðÆ®ÀÇ °³Ã¼ µ¥ÀÌÅ͸¦ ¼¹ö¿¡ º¸³»´Â µ¥ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. ServerClassRef.vb ÄÚµå ÆÄÀÏÀº ¾Æ·¡¿Í °°½À´Ï´Ù.
Public Class HelloServer
Inherits MarshalByRefObject
End Class
Public Class ForwardMe
Inherits MarshalByRefObject
End Class
- ForwardMe °³Ã¼¸¦ »ç¿ëÇÏ´Â public ¸Þ¼µåÀÎ HelloMethod¸¦ HelloServer¿¡ Ãß°¡ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ForwardMe °³Ã¼¸¦ ¼¹ö¿¡ Àü´ÞÇÏ´Â µ¥ »ç¿ëµÇ¸ç ForwardMe °³Ã¼ÀÇ CallMe ¸Þ¼µå¸¦ È£ÃâÇÒ °ÍÀÔ´Ï´Ù. ÀÌÁ¦ HelloServer Ŭ·¡½º°¡ ¾Æ·¡¿Í °°°Ô µË´Ï´Ù.
Public Class HelloServer
Inherits MarshalByRefObject
Public Sub HelloMethod(ByRef obj As ForwardMe)
Dim i As Integer
obj.CallMe()
End Sub
End Class - ForwardMe Ŭ·¡½º¿¡ public ¸Þ¼µå¸¦ Ãß°¡ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÀÌ Äڵ尡 ½ÇÇàµÉ ÇÁ·Î¼¼½ºÀÇ À̸§À» °¡Á®¿É´Ï´Ù. ÇÁ·Ï½Ã ½ºÅÓÀ» ¼¹ö¿¡ º¸³»°í Ŭ¶óÀÌ¾ðÆ®¸¦ Äݹé(ÂüÁ¶·Î ¸¶¼£¸µ)Çϱ⠶§¹®¿¡ ÄÚµå´Â Ŭ¶óÀ̾ðÆ®ÀÇ ÇÁ·Î¼¼½º¿¡¼ ½ÇÇàµË´Ï´Ù.
Public Class ForwardMe
Inherits MarshalByRefObject
Public Function CallMe() As Object
Console.WriteLine("CallMe was executed in: " & _
Process.GetCurrentProcess.ProcessName.ToString)
End Function
End Class - ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÏ¿© ServerClassRef.dll ¾î¼Àºí¸®¸¦ ¸¸µì´Ï´Ù.
- ÇÁ·ÎÁ§Æ®¸¦ ´Ý°í ÀúÀåÇÕ´Ï´Ù.
¿ø°Ý ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥ ¸¸µé±â
Ŭ¶óÀÌ¾ðÆ®¿Í Åë½ÅÇÒ ¼¹ö °³Ã¼¸¦ ¸¸µç ´ÙÀ½¿¡´Â ÀÌ °³Ã¼¸¦ Remoting ÇÁ·¹ÀÓ¿öÅ©¿¡ µî·ÏÇØ¾ß ÇÕ´Ï´Ù. µî·Ï¿¡´Â °³Ã¼¸¦ µî·ÏÇÏ´Â ÀÛ¾÷»Ó ¾Æ´Ï¶ó ¼¹ö¸¦ ½ÃÀÛÇϰí Ŭ¶óÀÌ¾ðÆ®°¡ ¿¬°áÇÒ Æ÷Æ®¿¡¼ ¼ö½Å ´ë±âÇϵµ·Ï ÇÏ´Â ÀÛ¾÷µµ Æ÷ÇԵ˴ϴÙ. ÀÌ·¸°Ô ÇÏ·Á¸é ½ÇÇà ÆÄÀÏÀ» Ãâ·ÂÇÏ´Â ÇÁ·ÎÁ§Æ® Çü½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¼¹ö °³Ã¼¸¦ º°µµÀÇ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½ÃŰ´Â ÀÌÀ¯´Â Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼¹ö °³Ã¼¸¦ ½±°Ô ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. ¼¹ö °³Ã¼¸¦ ÀÌ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½Ã۸é DLL ÆÄÀϸ¸ ÂüÁ¶µÇ°í ¼¹ö °³Ã¼´Â ÂüÁ¶µÇÁö ¾Ê½À´Ï´Ù.
- Visual Studio .NETÀ» ¿±´Ï´Ù.
- Äڵ带 ´Ü¼øÈÇϱâ À§ÇØ ¿ø°Ý ¼¹ö¸¦ ½ÃÀÛÇÏ´Â »õ ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µé°í ServerObjectRef¶ó´Â À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
- Module1.vb¿¡¼ ±âº»ÀûÀ¸·Î ¸¸µé¾îÁö´Â ÆÄÀÏÀÇ À̸§À» ServerObjectRef.vb·Î ¹Ù²ß´Ï´Ù.
- System.Runtime.Remoting ³×ÀÓ½ºÆäÀ̽º¿¡ ´ëÇÑ ÂüÁ¶¸¦ ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
- ¾Õ¼ ¸¸µç ServerClassRef.dll ¾î¼Àºí¸®¿¡ ´ëÇÑ ÂüÁ¶¸¦ Ãß°¡ÇÕ´Ï´Ù.
- Remoting, Remoting.Channels ¹× Remoting.Channels.TCP ³×ÀÓ½ºÆäÀ̽º¿¡ Imports ¹®À» »ç¿ëÇÕ´Ï´Ù. ±×·¯¸é ³ªÁß¿¡ Äڵ忡¼ ÀÌ ³×ÀÓ½ºÆäÀ̽ºÀÇ ¼±¾ðÀ» ÇÑÁ¤ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. Imports ¹®Àº Ç×»ó ¸Ç ¾Õ¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.TCP
- ƯÁ¤ Æ÷Æ®(ÀÌ ¿¹¿¡¼´Â Æ÷Æ® 8085)¿¡ ¿¬°áµÈ Ŭ¶óÀÌ¾ðÆ®¸¦ ¼ö½Å ´ë±âÇÒ TcpChannel °³Ã¼¸¦ ÃʱâÈÇϵµ·Ï º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù. RegisterChannel ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿Í Ã¤³Î ¼ºñ½º °£ÀÇ Åë½Å¿¡ »ç¿ëÇÒ Ã¤³ÎÀ» µî·ÏÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ Module1ÀÇ Main ÇÁ·Î½ÃÀú¿¡¼ ¼±¾ð Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
Dim chan As TcpChannel = New TcpChannel(8085)
ChannelServices.RegisterChannel(chan)
- RemotingConfiguration °³Ã¼ÀÇ RegisterWellKnownType ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ServerClassRef °³Ã¼¸¦ Remoting ÇÁ·¹ÀÓ¿öÅ©¿¡ µî·ÏÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ºÎºÐÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
- µî·ÏÇÒ °³Ã¼ÀÇ Àüü Çü½Ä À̸§(ÀÌ ¿¹ÀÇ °æ¿ì, ServerClassRef.HelloServer). ±× µÚ¿¡´Â ¾î¼Àºí¸® À̸§ÀÎ ServerClassRef°¡ ¿É´Ï´Ù. ³×ÀÓ½ºÆäÀ̽º¿Í Ŭ·¡½ºÀÇ À̸§À» µÑ ´Ù ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¾Õ Àý¿¡¼ ³×ÀÓ½ºÆäÀ̽º¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ±âº» ·çÆ® ³×ÀÓ½ºÆäÀ̽º°¡ »ç¿ëµË´Ï´Ù.
- ±× ´ÙÀ½, °³Ã¼¸¦ °Ô½ÃÇÒ Á¾Á¡ÀÇ À̸§À» Á¦°øÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ À̸§À» ¾Ë¾Æ¾ß¸¸ °³Ã¼¿¡ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. RemoteTestRef¸¦ »ç¿ëÇÕ´Ï´Ù.
- ¸¶Áö¸· ¸Å°³ º¯¼ö´Â °³Ã¼ ¸ðµå(SingleCall ¶Ç´Â Singleton)¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¿¹¿¡¼´Â SingleCallÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ °³Ã¼ ¸ðµå´Â ¼¹ö¿¡¼ °³Ã¼°¡ Ȱ¼ºÈµÇ´Â ¼ö¸íÀ» ÁöÁ¤ÇÕ´Ï´Ù. SingleCall °³Ã¼ÀÇ °æ¿ì Ŭ¶óÀÌ¾ðÆ®¿¡¼ È£ÃâÇÒ ¶§¸¶´Ù Ŭ·¡½ºÀÇ »õ ÀνºÅϽº°¡ ¸¸µé¾îÁö´Âµ¥, °°Àº Ŭ¶óÀÌ¾ðÆ®°¡ °°Àº ¸Þ¼µå¸¦ µÎ ¹ø ÀÌ»ó È£ÃâÇØµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. ±× ¹Ý¸é, Singleton °³Ã¼´Â ÇÑ ¹ø¸¸ ¸¸µé¾îÁö¹Ç·Î ¸ðµç Ŭ¶óÀÌ¾ðÆ®°¡ µ¿ÀÏÇÑ °³Ã¼¿Í Åë½ÅÇÕ´Ï´Ù.
RemotingConfiguration.RegisterWellKnownServiceType( _
Type.GetType("ServerClassRef.HelloServer, ServerClassRef"), _
"RemoteTestRef", _
WellKnownObjectMode.SingleCall)
- Console °³Ã¼ÀÇ ReadLine ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥À» °è¼Ó ½ÇÇàÇÕ´Ï´Ù.
Console.WriteLine("Hit <enter> to exit...")
Console.ReadLine() - ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÕ´Ï´Ù.
- ÇÁ·ÎÁ§Æ®¸¦ ´Ý°í ÀúÀåÇÕ´Ï´Ù.
°³Ã¼¸¦ Àü´ÞÇÏ¿© ¿ø°Ý ¼¹ö¿¡ ¾×¼¼½ºÇϴ Ŭ¶óÀÌ¾ðÆ® ¸¸µé±â
- Visual Studio .NETÀ» ¿±´Ï´Ù.
- »õ ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µé¾î ClientAppRef¶ó´Â À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
- Module1.vb¿¡¼ ±âº»ÀûÀ¸·Î ¸¸µé¾îÁö´Â ÆÄÀÏÀÇ À̸§À» ClientAppRef.vb·Î ¹Ù²ß´Ï´Ù.
- System.Runtime.Remoting ³×ÀÓ½ºÆäÀ̽º¿¡ ´ëÇÑ ÂüÁ¶¸¦ ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÕ´Ï´Ù.
- ¾Õ¼ ¸¸µç ServerClassRef.dll ¾î¼Àºí¸®¿¡ ´ëÇÑ ÂüÁ¶¸¦ Ãß°¡ÇÕ´Ï´Ù.
- Remoting, Remoting.Channels ¹× Remoting.Channels.TCP ³×ÀÓ½ºÆäÀ̽º¿¡ Imports ¹®À» »ç¿ëÇÕ´Ï´Ù. ±×·¯¸é ³ªÁß¿¡ Äڵ忡¼ ÀÌ ³×ÀÓ½ºÆäÀ̽ºÀÇ ¼±¾ðÀ» ÇÑÁ¤ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. Imports ¹®Àº Ç×»ó ¸Ç ¾Õ¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.TCP
- Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¿¬°áÇÏ´Â µ¥ »ç¿ëÇÒ TcpChannel °³Ã¼¸¦ ÃʱâÈÇÏ´Â º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù. Æ÷Æ®´Â TcpChannel °³Ã¼¸¦ ÃʱâÈÇÏ¿© ¾ç¹æÇâ Åë½ÅÀ» »ç¿ëÇϵµ·Ï ¼³Á¤ÇÒ ¶§ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ´Â °³Ã¼¸¦ ÂüÁ¶¿¡ÀÇÇØ ¸¶¼£¸µÇϱ⠶§¹®¿¡ ÇÊ¿äÇÏ¸ç ¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®¸¦ ÄݹéÇØ¾ß ÇÕ´Ï´Ù. ¼¹ö´Â ÀÌ Æ÷Æ®¸¦ »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¸¦ ÄݹéÇÕ´Ï´Ù. ÀÌ Æ÷Æ®´Â µ¥ÀÌÅ͸¦ º¸³»´Â µ¥ »ç¿ëµÇ´Â Æ÷Æ®¿Í ´Þ¶ó¾ß ÇÕ´Ï´Ù. RegisterChannel ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ä³ÎÀ» ä³Î ¼ºñ½º¿¡ µî·ÏÇÕ´Ï´Ù. ±×·± ´ÙÀ½ ¿ø°Ý ¼¹ö °³Ã¼¿¡ Àü´ÞÇÒ »õ ForwardMe °³Ã¼¸¦ ÃʱâÈÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ Module1ÀÇ Main ÇÁ·Î½ÃÀú¿¡¼ ¼±¾ð Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
Dim chan As TcpChannel = New TcpChannel(8086)
ChannelServices.RegisterChannel(chan)
Dim objForwardMe As New ServerClassRef.ForwardMe()
- ÀÌÁ¦ ¿ø°Ý ¼¹ö¸¦ ¼±¾ðÇϰí ÀνºÅϽº¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿¡¼´Â Activator °³Ã¼ÀÇ GetObject ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© HelloServer °³Ã¼ÀÇ ÀνºÅϽº¸¦ ¸¸µì´Ï´Ù. ´ÙÀ½°ú °°Àº ºÎºÐÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
- µî·ÏÇÒ °³Ã¼ÀÇ Àüü Çü½Ä À̸§(ÀÌ ¿¹¿¡¼´Â ServerClassRef.HelloServer). ±× µÚ¿¡´Â ¾î¼Àºí¸® À̸§ÀÎ ServerClassRef°¡ ¿É´Ï´Ù. ³×ÀÓ½ºÆäÀ̽º¿Í Ŭ·¡½ºÀÇ À̸§À» µÑ ´Ù ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ¾Õ Àý¿¡¼ ³×ÀÓ½ºÆäÀ̽º¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ±âº» ·çÆ® ³×ÀÓ½ºÆäÀ̽º°¡ »ç¿ëµË´Ï´Ù.
- Ȱ¼ºÈÇØ¾ß ÇÒ °³Ã¼ÀÇ URI(Uniform Resource Identifier). URI¿¡´Â ÇÁ·ÎÅäÄÝ(tcp), ÄÄÇ»ÅÍ À̸§(localhost), Æ÷Æ®(8085), ¼¹ö °³Ã¼ÀÇ Á¾Á¡(RemoteTestValue)ÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. "tcp://localhost:8085/RemoteTestRef" URI¸¦ »ç¿ëÇÏ¿© ServerClass ¿ø°Ý ¼¹ö¿¡ ¾×¼¼½ºÇÕ´Ï´Ù.
Dim objHelloServer As ServerClassRef.HelloServer
objHelloServer = CType(Activator.GetObject( _
Type.GetType("ServerClassRef.HelloServer, ServerClassRef"), _
"tcp://localhost:8085/RemoteTestRef"), _
ServerClassRef.HelloServer)
If objHelloServer Is Nothing Then
Console.WriteLine("Could not locate server")
Else
'See next step
End If
- ¼¹ö °³Ã¼ÀÇ ÀνºÅϽº¸¦ ¼º°øÀûÀ¸·Î ¸¸µé¾úÀ¸¸é ¼¹ö °³Ã¼ÀÇ ¸Þ¼µå¸¦ È£ÃâÇÏ°í »õ·Î ¸¸µç objForwardMe °³Ã¼¸¦ Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç¥½ÃÇϰíÀÚ ÇÏ´Â ¼öÁ¤µÈ ¹®ÀÚ¿ÀÌ °á°ú·Î ¹ÝȯµË´Ï´Ù.
Dim objHelloServer As ServerClassRef.HelloServer
objHelloServer = CType(Activator.GetObject( _
Type.GetType("ServerClassRef.HelloServer, ServerClassRef"), _
"tcp://localhost:8085/RemoteTestRef"), _
ServerClassRef.HelloServer)
If objHelloServer Is Nothing Then
Console.WriteLine("Could not locate server")
Else
objHelloServer.HelloMethod(objForwardMe)
End If - Console °³Ã¼ÀÇ ReadLine ¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥À» °è¼Ó ½ÇÇàÇÕ´Ï´Ù.
Console.WriteLine("Hit <enter> to exit...")
Console.ReadLine() - ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÕ´Ï´Ù.
- ¼¹ö ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ°í ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
- ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇÏ¿© Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö °£ÀÇ Åë½ÅÀ» Å×½ºÆ®ÇÕ´Ï´Ù. Ãâ·ÂÀº Ŭ¶óÀ̾ðÆ®ÀÇ ÄÜ¼Ö Ã¢¿¡ Ç¥½ÃµË´Ï´Ù. ÂüÁ¶¿¡ÀÇÇØ ¸¶¼£¸µÇϰí Àֱ⠶§¹®¿¡ Ŭ¶óÀÌ¾ðÆ® ÄݹéÀÌ ¹ß»ýÇÕ´Ï´Ù.
ÂüÁ¶
.NET Remoting Overview(.NET Framework Developer's Guide)
TcpChannel Class(.NET Framework Class Library)
.NET Framework Samples - Remoting
Microsoft .NET Remoting: A Technical Overview(Beta 1 .NET Development [General] Technical Articles):
Activator.GetObject Method(.NET Framework Class Library)
Type.GetType Method(.NET Framework Class Library)
RegisterWellKnownServiceType Method(.NET Framework Class Library)
±â¼ú ÀÚ·á: 301112 - ¸¶Áö¸· °ËÅä: 2002³â 2¿ù 25ÀÏ ¿ù¿äÀÏ - ¼öÁ¤: 1.0
º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
- Microsoft Visual Basic .NET 2002 Standard Edition
| kbhowto kbhowtomaster KB301112 |