[Interest] QTcpServer - One connection per port

Konrad Rosenbaum konrad at silmor.de
Tue Jun 12 21:48:57 CEST 2012


Hi,

On Tuesday 12 June 2012 11:14:54 Gopalakrishna Bhat wrote:
> I am trying to use QTcpServer to accept connection from only one client at
> a time, but i'm not able to do so.
> 
> I tried setting setMaxPendingConnections to one but then
> also waitForConnected on the second client returned true. I want
> waitForConnected to return true only for the first client.
> 
> Any I idea what I am doing wrong?

Two ideas: either you are solving the problem on the wrong layer, the wrong 
way or you are solving the wrong problem.

As Thiago wrote: it is not possible to tell the OS to accept only one 
connection. It's in the spec for TCP: it assumes that servers actually want to 
serve data to clients...

Wrong layer: some protocols solve this problem by accepting the connection, 
then sending the second client a message that they do not intend to allow this 
connection to proceed and optionally a reason for this rejection, then they 
close the connection.

The wrong way: how about as soon as a new client connects - kick the old 
client. This may be easier to implement for some problem spaces. Of course it 
produces new problems, like the possibility of (a different kind of) DoS. It 
may be worth considering both variants and then decide which one has fewer 
drawbacks.

Wrong problem: the need for having only one connection is often a serious 
design problem in the protocol. There are hundreds of scenarios how single-
connection protocols can screw up, for example if a network link is lost the 
server may not notice the problem for hours - during that time you will not be 
able to connect another client. It may be a good idea to try to fix the 
protocol to handle multiple concurrent connections.




	Konrad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20120612/27888f15/attachment.sig>


More information about the Interest mailing list