indy编程问题:可否同时进行聊天信息和图像信息传送(分不够可加) ( 积分: 100 )

  • 主题发起人 主题发起人 luckyso888
  • 开始时间 开始时间
L

luckyso888

Unregistered / Unconfirmed
GUEST, unregistred user!
好不容易通过论坛验证。。有个问题一直在脑子里想不通,第一次发问题
我用INDY组件里的IDTCPCLIENT编程,在线程中处理服务器回应,代码如下

procedure TClientHandleThread.Execute;
var
ThtStr:String;
begin
while not Terminated do
begin
try
ThtStr:=WDefWatch.TCPcommand.ReadLn(EOL,500);
if ThtStr<>'' then
begin
commandstr:=ThtStr;
Synchronize(HandleInput);
end;
except
WDefWatch.ToClientDisconnect;
Break;
end;
end;
end;

请问可否同时用TCPcommand接受和发送信息呢?
就是说在线程中已经收到服务器发来的命令,但是在 Synchronize(HandleInput)中还没处理完。。
这时是不是还可以响应服务器的命令
如果要并发处理,应该怎么做呢

//另: 这和灰鸽子最新版的只用一个TCP端口处理所有功能是有些相似的
 
好不容易通过论坛验证。。有个问题一直在脑子里想不通,第一次发问题
我用INDY组件里的IDTCPCLIENT编程,在线程中处理服务器回应,代码如下

procedure TClientHandleThread.Execute;
var
ThtStr:String;
begin
while not Terminated do
begin
try
ThtStr:=WDefWatch.TCPcommand.ReadLn(EOL,500);
if ThtStr<>'' then
begin
commandstr:=ThtStr;
Synchronize(HandleInput);
end;
except
WDefWatch.ToClientDisconnect;
Break;
end;
end;
end;

请问可否同时用TCPcommand接受和发送信息呢?
就是说在线程中已经收到服务器发来的命令,但是在 Synchronize(HandleInput)中还没处理完。。
这时是不是还可以响应服务器的命令
如果要并发处理,应该怎么做呢

//另: 这和灰鸽子最新版的只用一个TCP端口处理所有功能是有些相似的
 
图像信息想过用编码后用文本方式传送,但主要的问题是并发处理
 
sendbuffer
recvbuffer
自定义数据记录,就是边聊天边看电影也可以!
 
可以呀,就是同时发,乱序发也没有问题呀,重要的是, 对包一一标记,并加以验证。
用sendebuffer,receivebuffer
 
还是不太清楚,比如这样
if trim(RecCMD)='xxx' then
运行并等待一个程序执行完,而这个程序一时半会又执行不完
if trim(RecCMD)='' ... 别的命令

收到XXX的命令后是不是再不能收到别的命令了
 
有没有做过这方面的程序员帮一下忙啊

今天结贴。。分分
 
INDY的控件在接受数据的时候应该是启动了另外一个线程工作,应该没有问题。
 
就是在统一个线程也没有问题,在包头标志,
例如:
Tkind = (ktImage, kttext...)
TpackInfo = pack record
kind: Tkind;
size: integer;
packNo: integer;
sender: string[10];
end;
 
to:xuxiaohan
谢谢解答。。我会测试一下的
还有一个问题。。请问IDUDP控件怎么传不了超长的buffer(是编码的文件流)..说是包超长了,是不是一定要分次传啊 有没有可以一次传超长buffer的UDP控件呢
反正晚上会给你分数的
TO:linyang
我试过好像不行。。卡在线程里不出来
 
建议你还是自己启动一个线程吧,我用SocketAPI实现的时候一点问题也没有,Indy就搞不懂了。
 
发送端就是一次发送100Mbytes也没事。接收端会接收到诸如400bytes,1200bytes...的字节流,只要你做好了该数据包的长度标记,就能正确接收。如果再有这些数据的用途标记,那就想干什么就干什么了。
 
谢谢大家的热心解答~!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
962
import
I
S
回复
0
查看
937
SUNSTONE的Delphi笔记
S
后退
顶部