[ENet-discuss] How can I get the client port created in my client side

Siqi Shen siqishen at gmail.com
Fri Jul 13 11:02:59 PDT 2012


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 <enet-discuss-request at cubik.org>

> Send ENet-discuss mailing list submissions to
>         enet-discuss at cubik.org
>
> 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
>         enet-discuss-request at cubik.org
>
> You can reach the person managing the list at
>         enet-discuss-owner at cubik.org
>
> 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 <mr.danielaquino at gmail.com>
> To: Discussion of the ENet library <enet-discuss at cubik.org>
> Subject: Re: [ENet-discuss] How can I get the client port created in
>         my      client side
> Message-ID:
>         <CACRDGdkpKRcnV61P-eoJoyj-Ft8Tan4ObUCbHK=
> 113wqDfegeg at mail.gmail.com>
> 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 <dreijer at echobit.net>
> 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:* enet-discuss-bounces at cubik.org [mailto:
> > enet-discuss-bounces at cubik.org] *On Behalf Of *Siqi Shen
> > *Sent:* Wednesday, July 11, 2012 6:49 AM
> > *To:* enet-discuss at cubik.org
> > *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
> > ENet-discuss at cubik.org
> > 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 <siqishen at gmail.com>
> To: enet-discuss at cubik.org
> Subject: Re: [ENet-discuss] How can I get the client port created in
>         my      client side (Soren Dreijer)
> Message-ID:
>         <CAD6PKm30kP=
> gwTexMsqeeR3GxjjcjVTV6ua9YzhQ79WLKh90LA at mail.gmail.com>
> 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 <enet-discuss-request at cubik.org>
>
> > Send ENet-discuss mailing list submissions to
> >         enet-discuss at cubik.org
> >
> > 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
> >         enet-discuss-request at cubik.org
> >
> > You can reach the person managing the list at
> >         enet-discuss-owner at cubik.org
> >
> > 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 <siqishen at gmail.com>
> > To: enet-discuss at cubik.org
> > Subject: [ENet-discuss] How can I get the client port created in my
> >         client  side
> > Message-ID:
> >         <
> > CAD6PKm0KJqwY-Rf5rSeBOL3ru7x7c2jEyxYvRCAExD1QrecMrQ at 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" <dreijer at echobit.net>
> > To: "'Discussion of the ENet library'" <enet-discuss at cubik.org>
> > Subject: Re: [ENet-discuss] How can I get the client port created in
> >         my      client  side
> > Message-ID: <011301cd5f65$bc210a70$34631f50$@echobit.net>
> > 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: enet-discuss-bounces at cubik.org [mailto:
> > enet-discuss-bounces at cubik.org]
> > On Behalf Of Siqi Shen
> > Sent: Wednesday, July 11, 2012 6:49 AM
> > To: enet-discuss at cubik.org
> > 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
> > ENet-discuss at cubik.org
> > 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" <dreijer at echobit.com>
> To: "'Discussion of the ENet library'" <enet-discuss at cubik.org>
> Subject: Re: [ENet-discuss] How can I get the client port created in
>         my      client side (Soren Dreijer)
> Message-ID: <004401cd602d$e14b5da0$a3e218e0$@echobit.com>
> 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: enet-discuss-bounces at cubik.org [mailto:
> enet-discuss-bounces at cubik.org]
> On Behalf Of Siqi Shen
> Sent: Thursday, July 12, 2012 4:24 AM
> To: enet-discuss at cubik.org
> 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 <enet-discuss-request at cubik.org>
>
> Send ENet-discuss mailing list submissions to
>         enet-discuss at cubik.org
>
> 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
>         enet-discuss-request at cubik.org
>
> You can reach the person managing the list at
>         enet-discuss-owner at cubik.org
>
> 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 <siqishen at gmail.com>
> To: enet-discuss at cubik.org
> Subject: [ENet-discuss] How can I get the client port created in my
>         client  side
> Message-ID:
>         <
> CAD6PKm0KJqwY-Rf5rSeBOL3ru7x7c2jEyxYvRCAExD1QrecMrQ at 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" <dreijer at echobit.net>
> To: "'Discussion of the ENet library'" <enet-discuss at cubik.org>
> Subject: Re: [ENet-discuss] How can I get the client port created in
>         my      client  side
> Message-ID: <011301cd5f65$bc210a70$34631f50$@echobit.net>
> 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: enet-discuss-bounces at cubik.org [mailto:
> enet-discuss-bounces at cubik.org]
> On Behalf Of Siqi Shen
> Sent: Wednesday, July 11, 2012 6:49 AM
> To: enet-discuss at cubik.org
> 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
> ENet-discuss at cubik.org
> 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
> ENet-discuss at cubik.org
> http://lists.cubik.org/mailman/listinfo/enet-discuss
>
>
> End of ENet-discuss Digest, Vol 109, Issue 2
> ********************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cubik.org/pipermail/enet-discuss/attachments/20120713/1a62790d/attachment-0001.html>


More information about the ENet-discuss mailing list