请问各位前辈几个概念性的问题,(我是新手)(100分)

  • 主题发起人 tty_xiaotao
  • 开始时间
T

tty_xiaotao

Unregistered / Unconfirmed
GUEST, unregistred user!
我刚学DELPHI,最近我想自己写一个C/S的程序练练手,但是仔细考虑起来发现有很多概念性的问题我不懂,想请各位前辈指教:
1。如果我的SERVER要同时支持1000个用户,用户和SERVER之间通过UDP数据报联系,那么server的接收端口会不会出现两个数据报同时到来而没有办法区分的情况?
2。SERVER和用户之间可以通过TCP传递大量的数据,是不是对于每一个用户都需要生成一个线程来提供访问,那么SERVER的端口该如何设置呢?(是不是5000,5001这样往上加)
3。我想在UDP中包含确认信息,请问这个信息该如何才能保证两边的通信完全?
恳请大家指教!
 
我也想知道。
 
1。如果我的SERVER要同时支持1000个用户,用户和SERVER之间通过UDP数据报联系,那么server的接收端口会不会出现两个数据报同时到来而没有办法区分的情况?---可以区分的。
2。SERVER和用户之间可以通过TCP传递大量的数据,是不是对于每一个用户都需要生成一个线程来提供访问,那么SERVER的端口该如何设置呢?(是不是5000,5001这样往上加)--这个不懂
3。我想在UDP中包含确认信息,请问这个信息该如何才能保证两边的通信完全?--通信完全?不行吧,udp有可能会丢失信息的阿
 
1.这个是不会有问题的。理论上是不会出现完全同一时刻到达的。肯定会有时间差,所以不用管。
2,应该是端口不会加的,都是这样个端口,只是接受数据可以采用不同的线程来接受。也就是服务端采用阻塞的方式。
3。UDP有自己的校验的,一般情况下不用校验数据的完整。
我觉得是这样的。
 
就是UDP可能丢失信息,所以我发送的时候是这样发送的:一次发送3个UDP包,等3秒再发送
3个UDP,等3秒再发送3个,总共发送9个UDP数据包,SERVER收到后,只需要确认一个就可以了,确认后server也以同样的方式发回确认信息,大家觉得这个办法可行吗?
我没有复杂拓扑结构的网络,在局域网上测试太简单了。
第二个问题的意思就是说如果现在我已经和一个用户建立TCP在传文件了,那么我的5000端口被占用,而我需要和第二个用户同时传文件,那么SERVER的5000端口不就是不能用了吗?
会报band出错,这个时候该怎么办?
还有大数据量传输通过TCP连接也会出现QQ传文件中断的问题,这个问题又该怎么解决呢?
谢谢指教!
 
1。如果我的SERVER要同时支持1000个用户,用户和SERVER之间通过UDP数据报联系,那么server的接收端口会不会出现两个数据报同时到来而没有办法区分的情况?
UDP是无应答不可靠的通讯,太忙会丢失报文
2。SERVER和用户之间可以通过TCP传递大量的数据,是不是对于每一个用户都需要生成一个线程来提供访问,那么SERVER的端口该如何设置呢?(是不是5000,5001这样往上加)
线程数对于系统来说是有限的,太多的线程一是不好管理,二是系统性能会下降
如果每客户一联接的话,只能用端口号进行区分
3。我想在UDP中包含确认信息,请问这个信息该如何才能保证两边的通信完全?
恳请大家指教!
只能通过自己进行应答管理。

综上,建议你不要用UDP,用WINSOCK比较好。
 
谢谢大家的关注,请问WINSOCK是不是就是自己用SOCKET的API函数写,而不是调用DELPHI中的控件来做?
还有这个断点续传的问题,大家能不能给点建议
 
用API也可,用NMSOCKETSERVER,NMSOCKCLIENT也可
D7中用TCPSERVER,和TCPCLIENT都可以
还有INDY的控件也可
 
谢谢蒋老大的指导,我还想问一下,断点续传这个功能怎么实现
请指教
 
自己写的程序,用什么方法都行!只要你自己去定义好协议就行了。
如果是指网上下载的断点续传,我没研究过,我想这与HTTP和FTP协议的关系很密切。.
 
谢谢,我有不懂的再向您请教
我的QQ号码:157255481
mail:tty_xiaotao@eyou.com
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部