小弟我就纳闷了?这个winsock的连接有关问题如何这么灵异?c/s的 大家帮帮小弟我吧.

我就纳闷了????这个winsock的连接问题怎么这么灵异??c/s的 大家帮帮我吧.....
我做的是c/s的聊天程序:
c端用了一个udp的winsock向广播地址广播自己的ip.      
s端也是用udp的winsock收到广播包剥离出c的ip-c,作为s端udp的ip-sudp以把自己的ip-s发给c.并且把这个ip-c也作为s端的tcp的   winsocklisten的remotehost,再进入listen状态.
然后等待c端发出connect请求.
s端受到请求后用另外一个tcp的winsocks来接受请求,accept;;


下面请大家帮忙的是:::各个端口如何设置????

------解决方案--------------------
好一段绕口令呀
服务器端的监听端口,客户端必须知道才行,两端必须约好服务端监听端口,然后客户端主动连接服务器的指定端口;
而客户端的端口,若无特殊要求,可用系统自动分配的端口,一般情况下服务器端不必关系客户端的端口是多少,当然可以用remoteport获得客户端口号.
------解决方案--------------------
服务器榜定一个 udp断口 监听1个tcp断口 然后动态生成wisnock控件和客户端榜定、
------解决方案--------------------
简单的说就是服务器邦定的本地端口就是客户端的远程端口,客户端邦定的本地端口就是服务器的远程端口。
------解决方案--------------------
首先服务器一个控件监听5001端口 这个不能动
WinsockC tcp协议 remotehost=server-ip remoteport=5001 localport=0
发出connect请求的作用 ,目的地是server.
//localport=0系统随即分配 指定端口会出错
然后是服务器监听到这个connection,他是有这样的设置监听的:
WinsockLstn tcp协议 localport=5001

这样他就监听到了,然后就是触发下面的事件:服务器端的另一个Winsock,名字是WinsockS来接受这个connection,设置如下:

WinsockS accept 就可以了千万别指定本地的端口和ip 其实客户端 和服务器都是采用5001端口 只不过session不同