Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++, VB.NET: RTC

jakkupirno [05.11.2004 13:37:00]

#

Olen tässä koittanut saada pientä messenger tyyppistä softaa toimimaan. Lanissa systeemi toimii hienosti mutta, kun kohdekone on NAT:n takana homma tyssää?

Msdn sivuilta löytyy aika hyvät ohjeet mutta siellä vastaan tulee yksi iso MUTTA.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rtcclnt/rtc/receive_an_incoming_session_when_the_client_is_b­ehind_a_nat.asp

Tuolta löytyy esimerkki, joka tyssää VB.NET:llä kohtaan

'Cocreate and initialize your implementation of the port manager.

Mitenkähän tuo saataisiin tehtyä vb:llä? Ainoa esimerkki mikä löytyi oli tehty c++:lla ja en saanut siitä paljoakaan irti?
Jos joku keksii ratkaisun olisin onnellinen tyyppi taas vähän aikaa :)

sqwiik [05.11.2004 18:31:51]

#

Kyllähän tuolla sivulla mielestäni oli VB:lle ratkaisu? Vai tarkoitatako että sen porttaus VB.NET:lle ei onnistu?

jakkupirno [07.11.2004 11:36:57]

#

Olihan siellä kaikki muu kerrottu VB:lle muttei miten port managerin initialisointi saadaan tehtyä. Siitä löytyy esimerkki Addresmapping kohdasta, mutta se on tehty C++:lla.
En ole saanut sitä onnistumaan vb.net:llä

Antti [07.11.2004 12:41:17]

#

Hmmm... taitaapi olla niin, että ongelmasi on jossain muualla:

' CoCreate and initialize the RTCClient.
' Cocreate and initialize your implementation of the
' port manager.

Set objClientPortManagement = objSession

Tuo koodi juuri initialisoi portti managerin...

jakkupirno [08.11.2004 13:29:53]

#

Tuossa on esimerkki, jonka löysin msdn:n sivuilta mutta en ole saanut siitä oikein tolkkua.
Jos joku keksis miten se toimisi vb:llä olisi enempi ku hieno juttu

C++ Code Example

HRESULT hr = S_OK;
IRTCPortManager *pPortManager = NULL;

// CoCreate the PortManager.
// Note: Your PortManager implementation might have a different CLSID.
hr = CoCreateInstance(CLSID_MyPortManager,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_IRTCPortManager,
                      reinterpret_cast<void **> (&pPortManager));

// If (hr != S_OK), process the error here.

IRTCSession *pIRTCSession = NULL;
IRTCSessionPortManagement *pSessionPortManagement = NULL;

// Query IRTCSession for IRTCSessionPortManagement.
// Note: It is assumed the session has already been created.
hr = pIRTCSession->QueryInterface(IID_IRTCSessionPortManagement,
                                  reinterpret_cast<void **>
                                  (&pSessionPortManagement));

// If (hr != S_OK), process the error here.

// Set the PortManager.
hr = pSessionPortManagement->SetPortManager(pPortManager);

// If (hr != S_OK), process the error here.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta