程序没有提示错误,但是有四个输入选项。1.远程服务器的ip,这个是要联系的对方的 ip,2.昵称,是自己的称呼,3.服务器端口,(不知道如何获得)4.本地端口(不知道如何获得)。请教高手指点!(控件用的是idtcpclint,idtcpserver)

解决方案 »

  1.   

    我没用过你那控件,不知道是什么控件来得,我用的是TNMUDP
    给你这个例子:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
      ShellAPI, StdCtrls,Dialogs, ScktComp, NMUDP;  const MY_MESSAGE = WM_USER + 100;type
      TForm1 = class(TForm)
        Button1: TButton;
        NMUDP1: TNMUDP;
        Edit2: TEdit;
        Edit3: TEdit;
        StaticText1: TStaticText;
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
          FromIP: String; Port: Integer);
      private
        { Private declarations }
        procedure OnMinimize(var Message:TMessage);Message WM_SYSCOMMAND;
        procedure OnIconNotify(var Message: TMessage);message MY_MESSAGE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      i:integer;implementation{$R *.DFM}
    procedure TForm1.OnIconNotify(var Message: TMessage);
    begin
      if Message.LParam=WM_LBUTTONDOWN then form1.show;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var
      nid:NotifyIconData;
    begin
      nid.cbSize:=sizeof(nid);
      nid.uid:=1;
      nid.Wnd:=handle;
      Shell_NotifyIcon(NIM_DELETE,@nid);
      action:=cafree;
    end;procedure TForm1.OnMinimize(var Message: TMessage);
    var
      nid: TNotifyIconData;
    begin
      if Message.WParam=SC_MINIMIZE then form1.Hide else inherited;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      nid: TNotifyIconData;
    begin
      nid.cbSize := sizeof(nid);
      nid.Wnd := Handle;
      nid.uID := 1;
      nid.hIcon := Application.Icon.Handle;
      nid.uCallbackMessage := MY_MESSAGE;
      nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
      if not Shell_NotifyIcon(NIM_ADD, @nid) then
      begin
        ShowMessage('Failed!');
        Application.Terminate;
      end;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      ShowWindow(application.handle,SW_HIDE);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      strarr:array[0..1000] of char;
      Str:string;
      len:integer;
    begin
      Str:=Edit3.Text;
      if length(str)=0 then len:=1 else len:=length(str); 
      StrpCopy(strarr,Str);
      NMUDP1.RemoteHost:=Edit2.Text;
      NMUDP1.SendBuffer(strarr,len);
    end;procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
      NumberBytes: Integer; FromIP: String; Port: Integer);
    var
      str:array[0..1000] of char;
    begin
      str:='';
      form1.show;
      NMUDP1.ReadBuffer(str,NumberBytes);
      StaticText1.Caption:=str;
    end;end.
      

  2.   

    我在qq上看到对方的ip还有端口号是4000.那么我在程序里设置的端口号也是4000.我和朋友调试的时候都开着qq,我不能连接对方,但对方可以连接我,并且可以发信息,但是他关掉qq,以后双方都可以通信,一切正常,为什么?