我用Mscomm收线场数据,用Socket实时向远程监控机发数据;
我建了一个线程对象用于数据发送,主线程连接监控机和线程调用,代码如下;
运行时出错提示:Windows socket eror:由于套接字没有连接并且(当使用一个调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受(10057)on API 'Send'.
procedure TForm1.Menu_RemoteClick(Sender: TObject);  {选择远程监控}
begin
   menu_Remote.Checked:=Not Menu_Remote.Checked;
   if Menu_Remote.Checked then
     begin
       ServerSocket.Active:=True;
       Statusbar.Panels[0].Text:='Listening.....'+'(等待远程连接)';
     end
   else
     begin
       if ServerSocket.Active then
       ServerSocket.Active:=False;
       Statusbar.Panels[0].Text:='本机控制';
     end;
end;
procedure TForm1.ServerSocketAccept(Sender: TObject;Socket: TCustomWinSocket);
begin                                               {远程监控机已连接}
    IsServer := True;
  Statusbar.Panels[0].Text := 'Connected to: ' + Socket.RemoteAddress+'(远程监控)';
end;
线程单元;
uses
  Classes, ScktComp;type
  TSendThread = class(TThread)
  protected
    procedure Execute; override;
  public
    FSocket:TServerSocket;
    FSend:String;
   constructor Create(CreateSuspended:Boolean;ASocket:TServerSocket;
      Send:String;SP:TThreadPriority);
  end;implementation uses Draw;
{ TSendThread }
 constructor TSendThread.Create(CreateSuspended:  Boolean;ASocket:TServerSocket;Send:String;SP:TThreadPriority);
 begin
   FSocket:=ASocket;
   FSend:=Send;
   Priority:=SP;
   inherited Create(False);
   freeonterminate:=true;
 end;procedure TSendThread.Execute;
begin
   FSocket.Socket.SendText(FSend);
  if terminated then
  exit;
end;end.