<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588710</guid>
        <pubDate>Thu, 02 Apr 2015 06:06:16 +0000</pubDate>
        <title>не работают исходники любого сканера с rad studio xe</title>
        <link>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588710</link>
        <description><![CDATA[s2004: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Fhost:=inet_addr(PAnsiChar(AnsiString(Form1.Edit1.Text));</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
пользователь ками с винграда помог с решением код заработал.]]></description>
        <author>s2004</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588557</guid>
        <pubDate>Wed, 01 Apr 2015 13:44:15 +0000</pubDate>
        <title>не работают исходники любого сканера с rad studio xe</title>
        <link>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588557</link>
        <description><![CDATA[s2004: что никто непробовал сканер под дельфой начина с xe и выше?]]></description>
        <author>s2004</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588235</guid>
        <pubDate>Tue, 31 Mar 2015 16:26:44 +0000</pubDate>
        <title>не работают исходники любого сканера с rad studio xe</title>
        <link>https://forum.sources.ru/index.php?showtopic=401057&amp;view=findpost&amp;p=3588235</link>
        <description><![CDATA[s2004: продолжаются страности с rad studio xe  whois не хотел работать но потом переписал прогу и всё заработало, но вот например пример  любого сканера из интернета отказывается работать в ниже привидённом коде ругается на разные типы после исправления, в строке едита любые числа сбрасывает до 0.0.0.1  и всё другой диапазон вести невозможно. Кто то сталкивавлся с этой дельфи я менял раззличяные файлы winsock и winsock2 не помогло.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">*==================================*)</div><div class="code_line">(* XScanner by XProger &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*)</div><div class="code_line">(* mail: XProger@list.ru &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*)</div><div class="code_line">(* site: http://XProger.mirgames.ru *)</div><div class="code_line">(*==================================*)</div><div class="code_line">unit Code;</div><div class="code_line">&nbsp;</div><div class="code_line">interface</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, Messages, SysUtils, Classes, Controls, Forms,</div><div class="code_line">&nbsp;&nbsp;StdCtrls, ExtCtrls, winsock, AppEvnts, Buttons, Gauges, Spin;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;TForm1 = class(TForm)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Panel1: TPanel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label1: TLabel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Edit1: TEdit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label2: TLabel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SpeedButton1: TSpeedButton;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ProgressBar1: TGauge;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ListBox1: TListBox;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SpinEdit1: TSpinEdit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SpinEdit2: TSpinEdit;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label3: TLabel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Label4: TLabel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormCreate(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure FormDestroy(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure ApplicationEvents1Message(var Msg: tagMSG;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;var Handled: Boolean);</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure SpeedButton1Click(Sender: TObject);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TMyThread = class(TThread)</div><div class="code_line">&nbsp;&nbsp; protected</div><div class="code_line">&nbsp;&nbsp; &nbsp;procedure Execute; override;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TFSocket = record</div><div class="code_line">&nbsp;&nbsp; sa: TSockAddr;</div><div class="code_line">&nbsp;&nbsp; FData: integer;</div><div class="code_line">&nbsp;&nbsp; TimeOut: integer;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">const</div><div class="code_line">&nbsp;MAX_PORTS=500;</div><div class="code_line">&nbsp;Ping=5000;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Form1: TForm1;</div><div class="code_line">&nbsp;&nbsp;FSocket: array [0..MAX_PORTS - 1] of TFSocket;</div><div class="code_line">&nbsp;&nbsp;FPort: WORD;</div><div class="code_line">&nbsp;&nbsp;FInfo: TWSADATA;</div><div class="code_line">&nbsp;&nbsp;FHost: integer;</div><div class="code_line">&nbsp;&nbsp;FPStart, FPEnd: WORD;</div><div class="code_line">&nbsp;&nbsp;SThread: TMyThread;</div><div class="code_line">&nbsp;</div><div class="code_line">implementation</div><div class="code_line">&nbsp;</div><div class="code_line">{$R *.dfm}</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;</div><div class="code_line">&nbsp;&nbsp;var Handled: Boolean);</div><div class="code_line">var</div><div class="code_line">&nbsp;pSrvEnt:pServEnt;</div><div class="code_line">&nbsp;sPortDescription:String;</div><div class="code_line">begin</div><div class="code_line">&nbsp;if (Msg.message&#62;=FPStart+WM_USER)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;and (Msg.message&#60;=FPEnd+WM_USER)</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;if WSAGETSELECTERROR(Msg.lParam)=0</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;&nbsp;case WSAGETSELECTEVENT(msg.lParam) of</div><div class="code_line">&nbsp;&nbsp; FD_CONNECT:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; pSrvEnt := getservbyport(Msg.message - WM_USER,nil);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; if Assigned (pSrvEnt) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;sPortDescription := &#39;service: &#39; + string(pSrvEnt^.s_name)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;sPortDescription := &#39;&#39;; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; ListBox1.Items.Add(IntToStr(ListBox1.Count+1)+</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;) IP: &#39;+inet_ntoa(FSocket[0].sa.sin_addr)+&#39; &nbsp;| &nbsp;&#39;+</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;Port: &#39;+intToStr(Msg.message - WM_USER) + &#39; &nbsp;| &nbsp;&#39; +</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;sPortDescription);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Application.ProcessMessages;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;Handled:=false;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;i: integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;if WSAStartup(MAKEWORD(2, 0), FInfo)&#60;&#62;0</div><div class="code_line">&nbsp;then Halt;</div><div class="code_line">&nbsp;for i:=0 to MAX_PORTS-1 do</div><div class="code_line">&nbsp;with FSocket[i] do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; TimeOut := 0;</div><div class="code_line">&nbsp;&nbsp; FData := Socket(AF_INET, SOCK_STREAM, 0);</div><div class="code_line">&nbsp;&nbsp; if FData = SOCKET_ERROR</div><div class="code_line">&nbsp;&nbsp; then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; WSACleanup;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Halt;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;Application.OnMessage:=Form1.ApplicationEvents1Message;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.FormDestroy(Sender: TObject);</div><div class="code_line">var</div><div class="code_line">&nbsp;i: integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;if SThread&#60;&#62;nil</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; SThread.Terminate;</div><div class="code_line">&nbsp;&nbsp; SThread.WaitFor;</div><div class="code_line">&nbsp;&nbsp; SThread:=nil;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;for i:=0 to MAX_PORTS-1 do</div><div class="code_line">&nbsp;&nbsp;CloseSocket(FSocket[i].FData);</div><div class="code_line">&nbsp;WSACleanup;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure InitSockets;</div><div class="code_line">var</div><div class="code_line">&nbsp;i: integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;for i:=0 to MAX_PORTS-1 do</div><div class="code_line">&nbsp;&nbsp;with FSocket[i] do</div><div class="code_line">&nbsp;&nbsp; if (FPort&#62;=FPEnd) or (SThread.Terminated)</div><div class="code_line">&nbsp;&nbsp; then break</div><div class="code_line">&nbsp;&nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp;if GetTickCount-TimeOut&#62;PING</div><div class="code_line">&nbsp;&nbsp; &nbsp;then</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sa.sin_family:=AF_INET;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sa.sin_addr.S_addr:=FHost;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sa.sin_port:=htons(FPort);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;WSAAsyncSelect(FData, Application.Handle, WM_USER+FPort, FD_CONNECT);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;connect(FData, FSocket[i].sa, SizeOf(FSocket[i].sa));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TimeOut:=GetTickCount;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;inc(FPort);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Form1.Label2.Caption:=&#39;Port: &#39;+intToStr(FPort);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Form1.ProgressBar1.Progress:=trunc(((FPort-FPStart)*100)/(FPEnd-FPStart));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Application.ProcessMessages;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Sleep(PING div MAX_PORTS);</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TMyThread.Execute;</div><div class="code_line">var</div><div class="code_line">&nbsp;i: integer;</div><div class="code_line">&nbsp;buf: in_addr;</div><div class="code_line">begin</div><div class="code_line">&nbsp;FPStart:=Form1.SpinEdit1.Value;</div><div class="code_line">&nbsp;FPEnd:=Form1.SpinEdit2.Value;</div><div class="code_line">&nbsp;FHost:=inet_addr(PChar(Form1.Edit1.Text)); &nbsp; вот тут ругается на разные типы ставлю PansiChar и работает, но повторю в значение адреса сканирования сбрасывает до 0.0.0.1 и всё.</div><div class="code_line">&nbsp;if (FPEnd&#60;=FPStart)or (Form1.SpinEdit1.Value&#62;65535) or</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(Form1.SpinEdit2.Value&#62;65535)</div><div class="code_line">&nbsp;then FHost:=SOCKET_ERROR;</div><div class="code_line">&nbsp;if FHost=SOCKET_ERROR</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; if not Terminated</div><div class="code_line">&nbsp;&nbsp; then SThread:=nil;</div><div class="code_line">&nbsp;&nbsp; Form1.SpeedButton1.Caption:=&#39;Запуск&#39;;</div><div class="code_line">&nbsp;&nbsp; Exit;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;buf.S_addr:=FHost;</div><div class="code_line">&nbsp;Form1.Edit1.Text:=inet_ntoa(buf);</div><div class="code_line">&nbsp;Form1.ListBox1.Clear;</div><div class="code_line">&nbsp;FPort:=FPStart;</div><div class="code_line">&nbsp;for i:=0 to MAX_PORTS-1 do</div><div class="code_line">&nbsp;&nbsp;with FSocket[i] do</div><div class="code_line">&nbsp;&nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;TimeOut:=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FData:=Socket(AF_INET, SOCK_STREAM, 0);</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">&nbsp;//</div><div class="code_line">&nbsp;while not Terminated do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; InitSockets;</div><div class="code_line">&nbsp;&nbsp; if FPort&#62;=FPEnd</div><div class="code_line">&nbsp;&nbsp; then break;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;//</div><div class="code_line">&nbsp;for i:=0 to MAX_PORTS-1 do</div><div class="code_line">&nbsp;&nbsp;CloseSocket(FSocket[i].FData);</div><div class="code_line">&nbsp;//</div><div class="code_line">&nbsp;if not Terminated</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; SThread:=nil;</div><div class="code_line">&nbsp;&nbsp; Form1.SpeedButton1.Caption:=&#39;Запуск&#39;;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm1.SpeedButton1Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;if SThread=nil</div><div class="code_line">&nbsp;then</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; SThread:=TMyThread.Create(false);</div><div class="code_line">&nbsp;&nbsp; SpeedButton1.Caption:=&#39;Стоп&#39;;</div><div class="code_line">&nbsp;&nbsp;end</div><div class="code_line">&nbsp;else</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; SThread.Terminate;</div><div class="code_line">&nbsp;&nbsp; SThread.WaitFor;</div><div class="code_line">&nbsp;&nbsp; SThread:=nil;</div><div class="code_line">&nbsp;&nbsp; SpeedButton1.Caption:=&#39;Запуск&#39;;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>s2004</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	