各位大侠;
  请帮我 把这个问题解决,我等着急用,明天就要交任务了,谢谢!!
1.从客户端这边发数据到服务器那边,三秒发一次,如果服务器收到消息,就发任一条消息,如果服务器没有收到消息,客户端连续发5次,5次服务器没有收到消息就不在发,关于时间我在设置TTimer的interval属性设置为3000,在timer的事件中循环5次不是知道怎样控制。我如何判断数据在服务器上接受到数据,怎样把他现实,请看一下我写的代码:
var
flag_s:integer;  // 定义一个全局变量 ,次数procedure TForm1.fs;        定义一个过程,把发送消息保存在本地的LOG文件里
var
TextFileVar: Textfile;
SourcePath:string;
begin
flag_s:=1;
SourcePath := ExtractFileDir(Application.ExeName);
SourcePath:=SourcePath+'\'+'ReceiveStr.log';
 ClientSocket.Open;
 ClientSocket.Socket.SendText(trim(edit1.text));
  flag_s:=Form1.flag_s+1;         //每次次数都进行增加:
 AssignFile(TextFileVar,SourcePath);
 Append(TextFileVar);
 write(TextFileVar,#13);
 write(TextFileVar,'client send:');
 write(TextFileVar,trim(Form1.edit1.text));
 write(TextFileVar,'  ');
 write(TextFileVar,datetimetostr(now()));
 closefile(TextFileVar);
end;procedure TForm1.ClientSocketRead(Sender: TObject; )//把服务器返回的消息写在本地的log文件里。
  Socket: TCustomWinSocket);
var
  TextFileVar: Textfile;
  SourcePath, strread:string;
begin
SourcePath := ExtractFileDir(Application.ExeName);
SourcePath:=SourcePath+'\'+'ReceiveStr.log';
strread:=Socket.ReceiveText;
 AssignFile(TextFileVar,SourcePath);
 Append(TextFileVar);
 write(TextFileVar,#13);
 write(TextFileVar,'ServerReturn:');
 write(TextFileVar,strread);
 write(TextFileVar,'  ');
 write(TextFileVar,datetimetostr(now()));
 closefile(TextFileVar);
 Memo1.Lines.Add('服务器返回消息:'+strread);
end;
procedure TForm1.Timer1Timer(Sender: TObject);  
          //我不知道这里怎样控制次数和服务器接受到数据就不在发这条消息,应该发下条数据。
begin
 if    flag_s<5 then       // 控制次数 
    fs        
end;
end.
procedure TForm1.Button1Click(Sender: TObject);
begin
 fs;                //当我点两次就反映了一次,不知是什么原因。
end;2。请大家帮我看以下,推荐一本关于SOCKET的书籍,如果那位有电子版的发给我谢谢!!
E_MAILL: [email protected]