代码之家  ›  专栏  ›  技术社区  ›  Johny Wright

delphi套接字异常无法更改主机和端口的值

  •  0
  • Johny Wright  · 技术社区  · 10 年前

    当我试图将端口和主机分配给delphi客户端套接字时,出现了一个异常“当套接字处于活动状态时无法更改值”。但我没有更改套接字。active:=true。有人能提出这个错误的可能原因吗。

    procedure CreateSocket(add : pchar);
    var
      port : integer;
      address : string;
      host : string;
      socket1 : TClientSocket;
    begin  
      setstring(address,add,50);
      //showmessage(address) ;
      host := split(address,':');
      address := del(address,':');
      //showmessage(address);
      port := strtoint(address);
    
      socket1.port := port; //exception comes here
      socket1.host := host;
    
      showmessage('address assigned');
    
      connectionAttempt(Socket1);
    
      CheckDataArrival(socket1);
    end;
    
    1 回复  |  直到 10 年前
        1
  •  1
  •   Remy Lebeau    10 年前

    如果这是您实际的复制/粘贴代码,那么您已经声明了 TClientSocket 变量,但未实例化 T客户端套接字 对象,因此您正在无效内存上设置主机和端口。