type
TClientThread = class(TServerClientThread)
private
{ Private declarations }
protected
procedure ClientExecute; override;
public
Constructor Create(Sender:TObject;var MyWinsock:TServerClientWinSocket); Virtual;
end;
procedure TMainFrm.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread:=TClientThread.Create(Self, Clientsocket);
end;
procedure TClientThread.ClientExecute;
var
InputStream:TWinSocketStream;
OutputStream:TWinSocketStream;
ReceiveBuffer : Array[1..1024] Of Char;
begin
while not Terminated and ClientSocket.Connected do
begin
Try
InputStream := TWinSocketStream.Create(ClientSocket, MaxTimeOut);
Try
FillChar(ReceiveBuffer, sizeof(ReceiveBuffer), 0);
While InputStream.WaitForData(MaxTimeOut) do
begin
BytesRead := InputStream.Read(ReceiveBuffer,SizeOf(ReceiveBuffer));
if BytesRead = 0 then
ClientSocket.Close
else begin
//收到客户端的信息后,服务端发送回复信息。
OutputStream := TWinSocketStream.Create(ClientSocket, 60000);
ReceiveD:=TStringstream.Create('收到客户端信息');
OutputStream.CopyFrom(ReceiveD,0);
//这样写对吗?
end;
end;
Finally
InputStream.Free;
ClientSocket.Close;
End;
Except
End;
end;
end;
//**********************客户端**********************************
procedure TfrmLogin.cmd_OKClick(Sender: TObject);
var
OutStream, InputStream:TWinSocketStream;
ReceiveBuffer : TStringstream;
ReceiveD: array[0..1023]of char;
BytesRead:integer;
begin
OutStream := TWinSocketStream.Create(ClientSocket1.Socket, 60000);
InputStream:= TWinSocketStream.Create(ClientSocket1.Socket, 60000);
UnitID:='0350';
ReceiveBuffer:=TStringstream.Create('用户请求身份检查');
try
//向服务端发送信息。
OutStream.CopyFrom(ReceiveBuffer,0);
//开始从服务端接收数据。
FillChar(ReceiveD, sizeof(ReceiveD), 0);
While InputStream.WaitForData(MaxTimeOut) do
begin
BytesRead := InputStream.Read(ReceiveD,SizeOf(ReceiveD));
if BytesRead = 0 then
Break
else
RichEdit1.Lines.Add(ReceiveD);
end;
finally
OutStream.Free;
InputStream.Free;
ReceiveBuffer.Free;
ClientSocket1.Close;
end;
end;
现在问题是:
服务端能接收从客户端传来的信息,客户端却不能从服务端接收数据!
特把代码贴出来,大家帮忙看一下,是服务端发送数据有问题,还是客户端接收数据有问题!
不然服务端怎么知道客户端发多少字符?
如何在SQL語句select中加判斷? 成都-招聘.net MIS管理系统开发工程师 为什么DataGrid只显示SQL SERVER数据库中DateTime类型的日期部分 如何重载>>???在线等待急!!!!!!!!! 求文字滤镜效果 为什么winform的DataGrid只显示SQL SERVER数据库中DateTime类型的日期部分 请问谁有WMI SDK(WMI 软件开发包)啊? 想用c++bulder做一个计算器,请教高手。 sql语句错误? ie6上可以进行调试,升级成ie7就提示无法在Web 服务器上启动调试! 做网站,ASP.NET的优势在哪?怎么有人说ASP更方便,更快啊? 请教一个问题: jdbc连接时的疑问?急!急!急! (急求)如何用DOS命令实现远程的下载?? 新ID报到,散10分庆祝... 今晚去同网友约会,可能........ 问两个问题? 急,幫忙 100分,做作业,C++ & OpenGL。紧急!!! 两栏报表如何制作? 真的糊涂了兼郁闷了 一个正则表达式问题,请高手帮忙解决 有誰知道怎麼隱藏硬盤 100分求: 数据汇总解决办法,急等高手!!!! 如何Response.Redirect新的页面到指定的框架中 多线程如何调试啊 这样的复杂报表如何做?高分求解具体思路 为什么我做的VB程序拿到其他机子上就不能正常加载? 一个二维数组问题! 请教一个编码规范的问题