请问socket客户端端开后怎么样能重新接管服务器传来的信息!下面是服务器代码
procedure TClientThread.ClientExecute;
var
ReceiveBuffer: array[0..4095] of Char;
SocketStream: TWinSocketStream;
BytesRead: Integer;
begin
while not Terminated and ClientSocket.Connected do
begin
try
SocketStream := TWinSocketStream.Create(ClientSocket, 60000);
BytesRead := SocketStream.Read(ReceiveBuffer, SizeOf(ReceiveBuffer));
form1.mmo1.Lines.Append(ReceiveBuffer);
while true do
begin
Sleep(1000);
if ClientSocket <> nil then
begin
ClientSocket.SendText('套接字句柄' + inttostr(ClientSocket.SocketHandle));
end;
end;
except
end;
end;
end;
procedure TClientThread.ClientExecute;
var
ReceiveBuffer: array[0..4095] of Char;
SocketStream: TWinSocketStream;
BytesRead: Integer;
begin
while not Terminated and ClientSocket.Connected do
begin
try
SocketStream := TWinSocketStream.Create(ClientSocket, 60000);
BytesRead := SocketStream.Read(ReceiveBuffer, SizeOf(ReceiveBuffer));
form1.mmo1.Lines.Append(ReceiveBuffer);
while true do
begin
Sleep(1000);
if ClientSocket <> nil then
begin
ClientSocket.SendText('套接字句柄' + inttostr(ClientSocket.SocketHandle));
end;
end;
except
end;
end;
end;
解决方案 »
- 使用Delphi如何连接SQL数据库?
- ADO Access 加 Dev CxGrid 如何实现这样的效果?问题不难,100分,只因我是菜鸟。
- 散分啰,过年以后结贴~~~~~~~~~~
- 使用多个TClientDataSet互相影响的问题
- 大家帮忙看看,dll中函数的问题。万分火急!!
- 在delphi6.0中关于打印的有哪些控件??????谢谢!!!!怎么用??
- Delphi6下有个调用EJB的例子,谁跑起来了?有高分....
- 同时添加数据到两个表中或、删除两个表中的数据!
- 一个ACCESS数据表,加了密。有什么工具可以将它的密码解开?
- 哪儿有汇编语言和机器代码对查的相关资料?
- 请教如何使用DSPack或DirectShow将多个Bitmap转换成AVI并输出到檔案呢?
- delphi+indy10 idhttp post登录网站后。怎样保持登录状态。
http://topic.csdn.net/u/20111228/16/c561c4ed-5c56-43a6-a40f-a55577f4da17.html
2.服务器端传送给客户端的数据分成N块 ,假设已传了N-M块
3.客户端已接收了N-M块,数据保存在全局数据流或文件中,记下已接收到N-M块的信息,这时客户端断开。
4.从全局数据流或文件中,知道接收到N-M块信息,重新连接后可继续讲求剩下没接收完的信息。
5。服务器端可依据客户端的唯一ID 知道数据是传给谁 传完后可删除服务器端的数据(要传送的数据) 看看你的具体需求 未必一定要记录客户端的唯一ID 但一定要把数据份成N份 并记下数据总大小