Thanks for reply. The host->socket is the socket number that assigned by the OS. So when I use " sockaddr_in a; int size = sizeof(a); getsockname(m_Host->socket, (LPSOCKADDR) &a, &size); cout<<"The port i get "<< ntohs(a.sin_port)<<std::endl; " when connection event was receive in client, I can get the port number. I can not get the port number when host was created.
To Soren, what I want to do is debugging and understanding whether my network protocol is correctly. You mentioned that Enet can multiplex a port thus able to communicate with multiple host. This is very interesting, can you show a example of this code? Thanks and best regards, Siqi 2012/7/12 <[email protected]> > Send ENet-discuss mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.cubik.org/mailman/listinfo/enet-discuss > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of ENet-discuss digest..." > > > Today's Topics: > > 1. Re: How can I get the client port created in my client side > (Daniel Aquino) > 2. Re: How can I get the client port created in my client side > (Soren Dreijer) (Siqi Shen) > 3. Re: How can I get the client port created in my client side > (Soren Dreijer) (Soren Dreijer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 11 Jul 2012 14:49:40 -0400 > From: Daniel Aquino <[email protected]> > To: Discussion of the ENet library <[email protected]> > Subject: Re: [ENet-discuss] How can I get the client port created in > my client side > Message-ID: > <CACRDGdkpKRcnV61P-eoJoyj-Ft8Tan4ObUCbHK= > [email protected]> > Content-Type: text/plain; charset="windows-1252" > > You can find out that information from enet_host->socket. > > > On Wed, Jul 11, 2012 at 9:04 AM, Soren Dreijer <[email protected]> > wrote: > > > You?re using UDP and you therefore don?t have separate client-side ports > > when you ?connect? to a server.**** > > > > ** ** > > > > The port you?re using on the client is the one you specified in > > enet_host_create() when you initialized enet.**** > > > > ** ** > > > > *From:* [email protected] [mailto: > > [email protected]] *On Behalf Of *Siqi Shen > > *Sent:* Wednesday, July 11, 2012 6:49 AM > > *To:* [email protected] > > *Subject:* [ENet-discuss] How can I get the client port created in my > > client side**** > > > > ** ** > > > > Hi All, **** > > > > ** ** > > > > I am developing a small game using enet as network layer. My question is > > that how can I know the port I created in my client side to connect to > > remote host. I know that I can know the client's port in server's side > when > > ENET_EVENT_TYPE_CONNECT receive; but I can not get the port when I use > > enet_host_create or enet_host_connect or ENET_EVENT_TYPE_CONNECT receive > in > > client's side. Anyone know how to deal with this problem? **** > > > > ** ** > > > > Thanks and best regards,**** > > > > Siqi**** > > > > _______________________________________________ > > ENet-discuss mailing list > > [email protected] > > http://lists.cubik.org/mailman/listinfo/enet-discuss > > > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120711/7be08d1a/attachment-0001.html > > > > ------------------------------ > > Message: 2 > Date: Thu, 12 Jul 2012 11:24:23 +0200 > From: Siqi Shen <[email protected]> > To: [email protected] > Subject: Re: [ENet-discuss] How can I get the client port created in > my client side (Soren Dreijer) > Message-ID: > <CAD6PKm30kP= > [email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > Thanks for your reply. Setting port in enet_host_create is not flexible > enough, as I may create more than 20 processes/threads. I think that once > a udp diagram has been setup ( sendto() function has been called), the udp > port in the client side is determine and it will be consistent across the > whole application if we don't change the port manually. > > As I am using Win7 64bit. I use "netstat -an -p udp -o" to get the udp port > and process id mapping and find that the UDP port I created in my process > through enet is consistent. And as described in MSDN > "http://msdn.microsoft.com/en-us/library/ms740148%28VS.85%29.aspx" that > "If > a socket is opened, a > *setsockopt*< > http://msdn.microsoft.com/en-us/library/ms740476(v=vs.85).aspx> > call > is made, and then a *sendto* call is made, Windows Sockets performs an > implicit *bind* function call." > so we can get the port through > "*getsockname*< > http://msdn.microsoft.com/en-us/library/ms738543(v=vs.85).aspx> > " function. But I can not get the port in enet (I want to use the port > number for debugging). Do you have a better solution besides setting > port manually? > > > 2012/7/11 <[email protected]> > > > Send ENet-discuss mailing list submissions to > > [email protected] > > > > To subscribe or unsubscribe via the World Wide Web, visit > > http://lists.cubik.org/mailman/listinfo/enet-discuss > > or, via email, send a message with subject or body 'help' to > > [email protected] > > > > You can reach the person managing the list at > > [email protected] > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of ENet-discuss digest..." > > > > > > Today's Topics: > > > > 1. How can I get the client port created in my client side > > (Siqi Shen) > > 2. Re: How can I get the client port created in my client side > > (Soren Dreijer) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Wed, 11 Jul 2012 13:48:44 +0200 > > From: Siqi Shen <[email protected]> > > To: [email protected] > > Subject: [ENet-discuss] How can I get the client port created in my > > client side > > Message-ID: > > < > > cad6pkm0kjqwy-rf5rsebol3ru7x7c2jeyxyvrcaexd1qrec...@mail.gmail.com> > > Content-Type: text/plain; charset="iso-8859-1" > > > > Hi All, > > > > I am developing a small game using enet as network layer. My question is > > that how can I know the port I created in my client side to connect to > > remote host. I know that I can know the client's port in server's side > when > > ENET_EVENT_TYPE_CONNECT receive; but I can not get the port when I use > > enet_host_create or enet_host_connect or ENET_EVENT_TYPE_CONNECT receive > in > > client's side. Anyone know how to deal with this problem? > > > > Thanks and best regards, > > Siqi > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120711/c64afa88/attachment-0001.html > > > > > > > ------------------------------ > > > > Message: 2 > > Date: Wed, 11 Jul 2012 08:04:40 -0500 > > From: "Soren Dreijer" <[email protected]> > > To: "'Discussion of the ENet library'" <[email protected]> > > Subject: Re: [ENet-discuss] How can I get the client port created in > > my client side > > Message-ID: <[email protected]> > > Content-Type: text/plain; charset="us-ascii" > > > > You're using UDP and you therefore don't have separate client-side ports > > when you "connect" to a server. > > > > > > > > The port you're using on the client is the one you specified in > > enet_host_create() when you initialized enet. > > > > > > > > From: [email protected] [mailto: > > [email protected]] > > On Behalf Of Siqi Shen > > Sent: Wednesday, July 11, 2012 6:49 AM > > To: [email protected] > > Subject: [ENet-discuss] How can I get the client port created in my > client > > side > > > > > > > > Hi All, > > > > > > > > I am developing a small game using enet as network layer. My question is > > that how can I know the port I created in my client side to connect to > > remote host. I know that I can know the client's port in server's side > when > > ENET_EVENT_TYPE_CONNECT receive; but I can not get the port when I use > > enet_host_create or enet_host_connect or ENET_EVENT_TYPE_CONNECT receive > in > > client's side. Anyone know how to deal with this problem? > > > > > > > > Thanks and best regards, > > > > Siqi > > > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120711/8830cb5d/attachment-0001.html > > > > > > > ------------------------------ > > > > _______________________________________________ > > ENet-discuss mailing list > > [email protected] > > http://lists.cubik.org/mailman/listinfo/enet-discuss > > > > > > End of ENet-discuss Digest, Vol 109, Issue 1 > > ******************************************** > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120712/1c9754e4/attachment-0001.html > > > > ------------------------------ > > Message: 3 > Date: Thu, 12 Jul 2012 07:57:22 -0500 > From: "Soren Dreijer" <[email protected]> > To: "'Discussion of the ENet library'" <[email protected]> > Subject: Re: [ENet-discuss] How can I get the client port created in > my client side (Soren Dreijer) > Message-ID: <[email protected]> > Content-Type: text/plain; charset="us-ascii" > > I don't follow. Enet is only using a single port and multiplexes all > connections through that single port. That is, it doesn't matter whether > you're communicating with one or ten remote hosts; all traffic will go > through that one port that Enet is bound to. > > > > *You* are in charge of choosing the port when you set up Enet (i.e. call > enet_host_create), so I'm a little confused what the problem is. If you > create 20 Enet instances in 20 different processes, then they'd all have > different ports that you've chosen and thus know. > > > > Maybe if you described what you're really trying to achieve, I can better > understand. :) > > > > / Soren > > > > From: [email protected] [mailto: > [email protected]] > On Behalf Of Siqi Shen > Sent: Thursday, July 12, 2012 4:24 AM > To: [email protected] > Subject: Re: [ENet-discuss] How can I get the client port created in my > client side (Soren Dreijer) > > > > Thanks for your reply. Setting port in enet_host_create is not flexible > enough, as I may create more than 20 processes/threads. I think that once > a > udp diagram has been setup ( sendto() function has been called), the udp > port in the client side is determine and it will be consistent across the > whole application if we don't change the port manually. > > > > As I am using Win7 64bit. I use "netstat -an -p udp -o" to get the udp port > and process id mapping and find that the UDP port I created in my process > through enet is consistent. And as described in MSDN > > "http://msdn.microsoft.com/en-us/library/ms740148%28VS.85%29.aspx" that > "If > a socket is opened, a > <http://msdn.microsoft.com/en-us/library/ms740476(v=vs.85).aspx> > setsockopt > call is made, and then a sendto call is made, Windows Sockets performs an > implicit bind function call." > > so we can get the port through " > <http://msdn.microsoft.com/en-us/library/ms738543(v=vs.85).aspx> > getsockname > " function. But I can not get the port in enet (I want to use the port > number for debugging). Do you have a better solution besides setting port > manually? > > > > > > 2012/7/11 <[email protected]> > > Send ENet-discuss mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.cubik.org/mailman/listinfo/enet-discuss > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of ENet-discuss digest..." > > > Today's Topics: > > 1. How can I get the client port created in my client side > (Siqi Shen) > 2. Re: How can I get the client port created in my client side > (Soren Dreijer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 11 Jul 2012 13:48:44 +0200 > From: Siqi Shen <[email protected]> > To: [email protected] > Subject: [ENet-discuss] How can I get the client port created in my > client side > Message-ID: > < > cad6pkm0kjqwy-rf5rsebol3ru7x7c2jeyxyvrcaexd1qrec...@mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > Hi All, > > I am developing a small game using enet as network layer. My question is > that how can I know the port I created in my client side to connect to > remote host. I know that I can know the client's port in server's side when > ENET_EVENT_TYPE_CONNECT receive; but I can not get the port when I use > enet_host_create or enet_host_connect or ENET_EVENT_TYPE_CONNECT receive in > client's side. Anyone know how to deal with this problem? > > Thanks and best regards, > Siqi > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > < > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120711/c64afa88 > /attachment-0001.html> > > ------------------------------ > > Message: 2 > Date: Wed, 11 Jul 2012 08:04:40 -0500 > From: "Soren Dreijer" <[email protected]> > To: "'Discussion of the ENet library'" <[email protected]> > Subject: Re: [ENet-discuss] How can I get the client port created in > my client side > Message-ID: <[email protected]> > Content-Type: text/plain; charset="us-ascii" > > You're using UDP and you therefore don't have separate client-side ports > when you "connect" to a server. > > > > The port you're using on the client is the one you specified in > enet_host_create() when you initialized enet. > > > > From: [email protected] [mailto: > [email protected]] > On Behalf Of Siqi Shen > Sent: Wednesday, July 11, 2012 6:49 AM > To: [email protected] > Subject: [ENet-discuss] How can I get the client port created in my client > side > > > > Hi All, > > > > I am developing a small game using enet as network layer. My question is > that how can I know the port I created in my client side to connect to > remote host. I know that I can know the client's port in server's side when > ENET_EVENT_TYPE_CONNECT receive; but I can not get the port when I use > enet_host_create or enet_host_connect or ENET_EVENT_TYPE_CONNECT receive in > client's side. Anyone know how to deal with this problem? > > > > Thanks and best regards, > > Siqi > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > < > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120711/8830cb5d > /attachment-0001.html> > > ------------------------------ > > _______________________________________________ > ENet-discuss mailing list > [email protected] > http://lists.cubik.org/mailman/listinfo/enet-discuss > > > End of ENet-discuss Digest, Vol 109, Issue 1 > ******************************************** > > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > http://lists.cubik.org/pipermail/enet-discuss/attachments/20120712/312ce901/attachment.html > > > > ------------------------------ > > _______________________________________________ > ENet-discuss mailing list > [email protected] > http://lists.cubik.org/mailman/listinfo/enet-discuss > > > End of ENet-discuss Digest, Vol 109, Issue 2 > ******************************************** >
_______________________________________________ ENet-discuss mailing list [email protected] http://lists.cubik.org/mailman/listinfo/enet-discuss
