用的是socket+ado当一个客户端连接上时,,第二个客户端就连不上了,会出现
"windows socket error:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。(10048),on API 'bind'" 
怎么解决??

解决方案 »

  1.   

    我的DCOM也有同样的问题!!
    我帮你up
      

  2.   

    把ADOconnction关闭试试,我曾遇过,我是这么做的
      

  3.   

    以下是服务器主程序,高手帮忙看看,哪里错了???
    unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
      Windows, Messages, SysUtils, Variants,Forms,Classes, ComServ, ComObj, VCLCom, DataBkr,
       Dialogs, DBClient, Project1_TLB, StdVcl, DBTables, Provider, DB, ADODB,
      ScktComp;type
      Tjobman = class(TRemoteDataModule, Ijobman)
        ADOConnection1: TADOConnection;
        unit_login: TADOQuery;
        unit_loginpro: TDataSetProvider;
        jobs: TADOQuery;
        jobs_pro: TDataSetProvider;
        comm: TADOQuery;
        comm_pro: TDataSetProvider;
        Session1: TSession;
        fact_look: TADOQuery;
        fact_lookpro: TDataSetProvider;
        job_class: TADOQuery;
        job_classpro: TDataSetProvider;
        ServerSocket1: TServerSocket;
        ADOQuery1: TADOQuery;
        DataSetProvider1: TDataSetProvider;
        factpro2: TDataSetProvider;
        fact2: TADOQuery;
        function DataSetProvider3DataRequest(Sender: TObject;
          Input: OleVariant): OleVariant;
        procedure fact_lookproBeforeUpdateRecord(Sender: TObject;
          SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
          UpdateKind: TUpdateKind; var Applied: Boolean);
      private
        { Private declarations }
      protected
        class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
        procedure SQLDeal(var SQLDeal: OleVariant); safecall;
        procedure jobsel(var job: OleVariant); safecall;
      public
        { Public declarations }
      end;implementation{$R *.DFM}class procedure Tjobman.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
    begin
      if Register then
      begin
        inherited UpdateRegistry(Register, ClassID, ProgID);
        EnableSocketTransport(ClassID);
        EnableWebTransport(ClassID);
      end else
      begin
        DisableSocketTransport(ClassID);
        DisableWebTransport(ClassID);
        inherited UpdateRegistry(Register, ClassID, ProgID);
      end;
    end;procedure Tjobman.SQLDeal(var SQLDeal: OleVariant);
    begin
    end;procedure Tjobman.jobsel(var job: OleVariant);
    begin
       
    end;function Tjobman.DataSetProvider3DataRequest(Sender: TObject;
      Input: OleVariant): OleVariant;
      var
      irecords:integer;
    beginend;procedure Tjobman.fact_lookproBeforeUpdateRecord(Sender: TObject;
      SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
      UpdateKind: TUpdateKind; var Applied: Boolean);
    beginApplied:=true;
    end;initialization
      TComponentFactory.Create(ComServer, Tjobman,
        Class_jobman, ciMultiInstance, tmApartment);
    end. 
      

  4.   

    你这个代码,还不如不贴出来,看看线层模型对不对?可以用Dcom试试,看看行不行。
      

  5.   

    Application server 的remote data moduler 是不是单线程?