现在需要一个udp并发服务器来为客户提供文件上传下载功能.方案:  类似于(TFTP).当服务器的侦听socket接收到一个客户的连接请求,服务器就创建一个socket并帮定在一个临时端口上.然后客户端的socket就与这个socket通讯.
问题是这个程序要跑在公网上,防火墙只打开了服务器的侦听端口,那么那些建立在临时端口上的socket就无法与客户端通讯了.
请问有没有更好的设计方案?????????谢谢!!!!!!!!

解决方案 »

  1.   

    设计报文格式如下:
    第一个字节>0时,代表传送的是文件数据。
    第一个字节=0时,代表传送的是命令,从第二个字节开始为命令的实际内容。过程如下:
    要下载文件时,由客户端向服务器端发送下载命令,服务器接受到下载命令后,开始往请求的IP和端口回发文件数据,并等待客户端确认,收到确认后,继续发下一帧。要上传文件时,客户端先发送上传命令,服务器接受到上传命令后,等待客户端传送文件内容并返回确认,依次将报文写到文件。需要注意的是:使用NAT上网的客户,其UDP端口是易失的,必须保证每30秒之内,客户端都向服务器端发送一次报文。
      

  2.   

    看ftp协议啊..要返回告诉客户端服务器新开的端口.还有udp不需要连接绑定,直接发送就可以了...