Sockets delphi套接字异常可以';t更改主机和端口的值

Sockets delphi套接字异常可以';t更改主机和端口的值,sockets,delphi-7,Sockets,Delphi 7,当我试图将端口和主机分配给delphi客户端套接字时,出现了一个异常“当套接字处于活动状态时无法更改值”。但是我没有更改套接字。active:=true。有人能提出这个错误的可能原因吗 procedure CreateSocket(add : pchar); var port : integer; address : string; host : string; socket1 : TClientSocket; begin setstring(address,add,50

当我试图将端口和主机分配给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;

如果这是实际的复制/粘贴代码,那么您已经声明了
TClientSocket
变量,但没有实例化
TClientSocket
对象,因此,您正在将主机和端口设置为无效内存。

您可以发布代码吗?您已经以某种方式连接了套接字,现在正试图更改地址:端口。@EJP不,我不想。。我使用了不同的端口号来查看它。@Lizz我在问题中添加了代码。.我添加了socket:=Tclientsocket.create(nil),然后它开始工作。