Asynchronous TCP server -- Misc. questions

Tech-Archive recommends: Fix windows errors by optimizing your registry

From: Mochuelo (hola_at_que.tal)
Date: 03/17/05


Date: Thu, 17 Mar 2005 02:54:52 +0100

Hi,

I'm working with an asynchronous TCP server. I have a few questions
that may seem silly, but I can't get to understand all this.

Let's say that BeginAccept will cause the AcceptCallback method being
executed, and that BeginReceive will cause the ReadCallback method
being execute. I have played a little bit with them, it looks like the
AcceptCallback method gets executed right when a (local or remote)
client requests to connect to this server. I believe that when the
server executes the EndAccept method, it is accepting the connection.
My first silly question is: Why would the server want to reject a
specific connection request, if the Listen method has already
specified in advance the maximum number of simultaneous connections I
want to allow? Could anyone give me an example of a criterium under
which I could want to reject a connection request, assuming the max
number of connections has NOT been reached yet?

Can I know the IP of the client, before accepting the connection
request?

Another question is: The help for BeginAccept says, among other
things:

 "Your callback method should implement the EndAccept method. When
your application calls BeginAccept, the system uses a separate thread
to execute the specified callback method and blocks on EndAccept until
a pending connection is retrieved."

I don't understand why it says "blocks". ReadCallback is executed
right at the beginning of every chunk received, or at the end? If it
is executed at the beginning, I could understand the "block". It would
block until the end of the chunk is reached, when all the chunk data
is finally present in the receive buffer. If ReadCallback is executed
at the end of every chunk received, I don't understand the word
"block". Could someone help me understand this?

Thank you very much.



Relevant Pages

  • Re: Asynchronous TCP server -- Misc. questions
    ... > I'm working with an asynchronous TCP server. ... > server executes the EndAccept method, it is accepting the connection. ... the socket is only available from EndAccept. ... > to execute the specified callback method and blocks on EndAccept until ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Asynchronous TCP server -- Misc. questions
    ... >> I'm working with an asynchronous TCP server. ... >> server executes the EndAccept method, it is accepting the connection. ... >> to execute the specified callback method and blocks on EndAccept until ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Check connection to db
    ... The usual way would be to execute a dummy query against the server. ... If the connection is lost ... during package execution then the associated task will fail and you can set ...
    (microsoft.public.sqlserver.dts)
  • Re: Getting past router?
    ... but that server, which is waiting for a connection ... is behind a wireless router. ... connection request then you needn't have to ...
    (comp.os.linux.networking)
  • [ts] system error 31
    ... execute a. ... How much approx 35 or 36 users are connected the server leave ... to have access the internet and lose the connection with the lan. ...
    (microsoft.public.windows.server.general)