我都快疯了,求关于 TTcpServer TTcpClient TUdpSocket 的使用方法,要详细。(300分)

  • 主题发起人 主题发起人 stevenldj
  • 开始时间 开始时间
S

stevenldj

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么 Delphi 的网络控件都写得那么怪,让人搞不懂怎么用,我今天在网上搜索了一天关于 Delphi 网络控件的使用方法,结果都是介绍 TServerSocket 和 TClientSocket 的,没有几篇介绍 TTcpServer TTcpClient TUdpSocket 的,要么搜到的都是一些没人回的帖子,《Delphi7 组件大全》中无此控件(晕死),下载了一大堆 Delphi 的 CHM 资料,找不到一篇相关说明。

难道 TTcpClient 每次向 TTcpServer 发送消息,都要连接一次,再断开一次,否则,TTcpServer 怎么接受消息?
TUdpSocket 接收到消息怎么获取“消息发送端”的地址,怎么想远端回复消息?TUdpSocket 的 OnReceive 怎么收不到消息?这是什么奇怪的东西?

本贴高分求 TTcpServer TTcpClient TUdpSocket 的使用方法,要详细:属性,方法,事件,例子。欢迎大家积极讨论这三个控件的用法,Delphi 舍弃 TServerSocket 和 TClientSocket 而改用 TTcpServer TTcpClient TUdpSocket 必有其原因,可这三个控件也太难驾驭了吧!
 
呵呵,放弃吧。我也是找了n天,最终在n+1天的时候,我彻底崩溃了,只好用VB,一切OK
 
不啊,我不要用 VB ,那个解释性的语言,效率太低了。
这几个控件是谁写的,难道没有使用说明吗?难道大富翁中也无人懂此控件吗?
还请高手赐教!!!
 
你想驾驭,就得看例子.
C:/Program Files/Borland/Delphi7/Demos/Indy
 
delphi7建议使用Indy组件,看DELPHI帮助就够了。
Borland/Delphi7/Demos/Indy 没有介绍怎么使用,里面介绍的是连接的方法。都是先连接再发送。
真正的例子在/Borland/Delphi7/Demos/Intenet/Netchat
里面使用线程。使用起来比原来的好些。
---
其实,原来的TSocket组件确实改进了,因为他们的使用要先连接,再返回,之后才能发送数据,现在不需要这样了。而且使用的是线程。方便多了。
 
好,我先看看那个Demo,看完在说!!!
 
那个 NetChat DEMO 也太简单了吧,如果我要用一个服务器连接多个客户端,要怎么写代码呢?
D7 的 TcpServer 和 TcpClient 中的属性和事件都比之前的 ServerSocket 和 ClientSocket 少了很多,而且一些事件的参数也减少了,网上介绍的 代码例子 根本不能套用,Delphi 帮助中也没有例子,怎么学啊?
demo 中的发送代码是:
try
if TcpClient1.Connect then
for I := 0 to memSend.Lines.Count - 1 do
TcpClient1.Sendln(memSend.Lines);
finally
TcpClient1.Disconnect;
end;
那是不是说,每次发送数据都要 连接 -> 发送 -> 断开,等下次发送再 连接 -> 发送 -> 断开 呢?
如果要将一个 100M 的文件发送到 TcpServer ,而且每次只发送 4k, 那是不是要“连接再断开”2万多次呢?
 
我在学习时发现一个问题:
服务端接受请求代码如下,显示一个提示框:
procedure TFormMain.TcpServer1Accept(Sender: TObject;
ClientSocket: TCustomIpClient);
begin
ShowMessage('Accept');
end;
当服务端接受几次请求之后(也就是显示几次"Accept"提示框之后),会出现
Canvas does not allow drawing
的错误提示,这说明服务端接受请求事件用的是一个新的线程。那是不是多个客户端连接到服务器时,服务器就会建立多个线程来响应各个客户端的连接请求?
 
如果客户端用的是 连接 -> 发送 -> 断开 的方式发送数据,那么服务端怎么向客户端返回数据呢?客户端已经断开了,服务端向哪儿返回数据呢?
 
结贴结贴。

这样的问题好象问得很幼稚哈,应该自己看帮助的,这东西应该不难,让我仔细研究一下。

我在 《Delphi6 组件大全》中看到了此控件的介绍,和 Delphi 帮助上的差不多,不过是中文罢了。只是没有例子,可惜了!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部