There is no client which uses 2 connections, you do not have a choice in this matter, you use one connection per peer. Most clients will probably refuse a second connection from a peer it is already connected to.<br><br>Joris,
<br><br><div><span class="gmail_quote">On 11/3/06, <b class="gmail_sendername">Yao-Chin Wu</b> &lt;<a href="mailto:yaochinwu@yahoo.com">yaochinwu@yahoo.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thank you for your prompt response.<br><br>I have this idea mainly because it is easier to implement. The thread handles its own inbound or outbound connection can focus only on its own job. </blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Besides, in typical case, a peer may not always need to send and receive data from the same peer. But, it seems like it is not a good idea at all. If other members can also provide your opinion, that will also be appreciated.&nbsp;
</blockquote><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">BTW, Mike mentioned that one connection is the standard in this situation. And there is a short paragraphe in Bittorrent protocal, which says,&quot;Peer connections are symmetrical. Messages sent in both directions look the same, and data can flow in either direction.&quot; Does your point come from here? If it is the standard, there must be no Bittorrent client designed to use separated connections because it could even fail to work with other existing implmentation: one peer cannot handle download and upload in one connectoin while its uploader assumes it could, and
 send a request message through this connection and would never get response. Thank you.</blockquote><div><br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<span class="e" id="q_10eac6eda658509d_1"><b><i>Alan McGovern &lt;<a href="mailto:alan.mcgovern@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">alan.mcgovern@gmail.com</a>&gt;</i></b> wrote:
</span><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"><div><span class="e" id="q_10eac6eda658509d_3"> Hi,<br><br>There's no point in not using the same connection to both send and receive data. No program that i know of would use a seperate socket to send data and receive data from the the same host, it's inefficient and awkward. 
<br><br>Thanks,<br><span>Alan.<br><br>(forgot to hit &quot;reply to all&quot; the first time, sorry)<br></span><div><span><br>&nbsp;<br><div><span class="gmail_quote">On 11/2/06,  <b class="gmail_sendername">Michael Parker</b>
 &lt;<a href="mailto:mgp@ucla.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">mgp@ucla.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
  <br>On Nov 2, 2006, at 8:22 AM, Yao-Chin Wu wrote:<br>&gt; Dear all,<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; I am a college student and doing a project related to P2P<br>&gt; structure. Bittorrent is a excellent resource for us, and we are
<br>  &gt; trying to understand its code as much as possible.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Accroding to the Bittorrent client implemented by Bram Cohen,<br>&gt; it looks like using only one connection when peer A is downloading<br>
&gt; a piece from peer B and peer B also wants to download a piece from <br>&gt; peer A ( one connection for downloading and uploading also). Is<br>&gt; that correct? Is there other implementatioins using seperated<br>&gt; connections for this situation? Which one may be better? Thank you
<br>  &gt; for your help!<br>&gt;<br><br>Yes, the standard is that there is only one connection between them.<br>I don't think there's much
 point to separated connections for<br>uploading and downloading -- by using a single connection you can cut <br>the overhead from the TCP headers in half. Also, if two different<br>connections were used, that gives me the impression that each side is
<br>responsible for creating one of the connections (although not<br>necessarily). But with the prevalence of NATs and firewalls today, <br>you'd be running a greater risk of one side not being able to connect<br>at all, and hence one side not being able to download or upload at all.
<br><br>- Mike<br><br><br>_______________________________________________ <br>BitTorrent mailing list<br><a href="mailto:BitTorrent@lists.ibiblio.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
BitTorrent@lists.ibiblio.org</a><br><a href="http://lists.ibiblio.org/mailman/listinfo/bittorrent" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://lists.ibiblio.org/mailman/listinfo/bittorrent
 </a><br></blockquote></div><br>  </span></div></span></div> _______________________________________________<span class="q"><br>BitTorrent mailing list<br><a href="mailto:BitTorrent@lists.ibiblio.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
BitTorrent@lists.ibiblio.org</a><br><a href="http://lists.ibiblio.org/mailman/listinfo/bittorrent" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://lists.ibiblio.org/mailman/listinfo/bittorrent
</a><br></span></blockquote><span class="ad"><br><p> 

</p><hr size="1">Cheap Talk? Check out Yahoo! Messenger's low <a href="http://us.rd.yahoo.com/mail_us/taglines/postman8/*http://us.rd.yahoo.com/evt=39663/*http://voice.yahoo.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
 PC-to-Phone call rates.</a>

<p></p></span><br>_______________________________________________<br>BitTorrent mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:BitTorrent@lists.ibiblio.org">BitTorrent@lists.ibiblio.org
</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.ibiblio.org/mailman/listinfo/bittorrent" target="_blank">http://lists.ibiblio.org/mailman/listinfo/bittorrent</a><br><br><br></blockquote>
</div><br>