tcp传输端口的监听!!!

 Socket client = new Socket("127.0.0.1", 20006); 
ServerSocket server = new ServerSocket(20006); 
是客户先创建一个20006端口让服务器去监听,还是服务器提供20006的端口,客户端想要访问我就要通过20006端口。如果是客户端创建20006端口让服务器去监听,服务器是怎么得到信息知道它要去监听20006这个端口(因为tcp还没有建立连接/还是有其他的方法可以知道客户端发来的端口号)?

http://www.cnblogs.com/WonKerr/archive/2009/03/04/tcp_listen_queue.html

服务端启动会占用20006端口与客户端进行通信,20006端口是指服务端的端口