为什么服务器只接受一个客户端的连接?

lincoke 2003-11-16 03:22:57
用的是socket+ado当一个客户端连接上时,,第二个客户端就连不上了,会出现
"windows socket error:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。(10048),on API 'bind'"
怎么解决??
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
一年 2003-11-24
  • 打赏
  • 举报
回复
Application server 的remote data moduler 是不是单线程?
wshuo 2003-11-20
  • 打赏
  • 举报
回复
你这个代码,还不如不贴出来,看看线层模型对不对?可以用Dcom试试,看看行不行。
lincoke 2003-11-19
  • 打赏
  • 举报
回复
以下是服务器主程序,高手帮忙看看,哪里错了???


unit Unit2;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
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;
begin

end;

procedure Tjobman.fact_lookproBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin

Applied:=true;
end;

initialization
TComponentFactory.Create(ComServer, Tjobman,
Class_jobman, ciMultiInstance, tmApartment);
end.

xiechong 2003-11-16
  • 打赏
  • 举报
回复
把ADOconnction关闭试试,我曾遇过,我是这么做的
lincoke 2003-11-16
  • 打赏
  • 举报
回复
已打包了
jianke5555 2003-11-16
  • 打赏
  • 举报
回复
重新编译一下程序也不行??
司码君 2003-11-16
  • 打赏
  • 举报
回复
我的DCOM也有同样的问题!!
我帮你up

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧