关于ClientSocket2循环发送数据的问题for I : 0 to lsvTransitUser.Items.Count - 1 dobeginIP:lsvTrans
关于ClientSocket2循环发送数据的问题 for I := 0 to lsvTransitUser.Items.Count - 1 do begin IP:=lsvTransitUser.Items[I].SubItems.Strings[0]; ClientSocket2.Active:=False; ClientSocket2.Address:=IP; ClientSocket2.Port:=7999; ClientSocket2.Active:=True; ClientSocket2.Open; ClientSocket2.Socket.SendText('1111); ClientSocket2.Close; end;
procedure TForm1.btnSendDataClick(Sender: TObject); var MyTcpClient:TTcpClient; ID:DWORD; Rec:string; index, L:Integer; begin MyTcpClient :=TTcpClient.Create(nil); MyTcpClient.BlockMode := bmBlocking; MyTcpClient.Name := 'MyTempTcpClient'; MyTcpClient.OnError := TcpClient1Error; MyTcpClient.RemoteHost := '192.168.1.123'; for index := 9707 to 9737 do begin MyTcpClient.RemotePort := IntToStr(index); MyTcpClient.Open; if MyTcpClient.Active then begin L := MyTcpClient.Sendln('test'); if L > 0 then begin ShowMessage('Port:' + IntToStr(index) + IntToStr(L)); end; end; MyTcpClient.Close; end; MyTcpClient.Free;
for I := 0 to lsvTransitUser.Items.Count - 1 do begin IP:=lsvTransitUser.Items[I].SubItems.Strings[0]; ClientSocket2.Active:=False; ClientSocket2.Address:=IP; ClientSocket2.Port:=7999; ClientSocket2.Active:=True; ClientSocket2.Open; ClientSocket2.Socket.SendText('1111); ClientSocket2.Close; end; [解决办法] 用“tcpclnt1.Receiveln();”要是服务器没有返回数据,程序会一直在那边等吧。(进程死了)