1 ضمیمه
اين "socket error # 10061 connection refused" واسه چيه!
من با Idtcpclient به چندتا ip مختلف ميخوام پيام بدم. وقتي كه به يكي از اونا كانكت شدم و پيام رو ارسال كردم و ديسكانكت ميكنم تا ip رو عوض كنم و به بعدي پيام بدم اين پيغام رو ميده!!!
https://barnamenevis.org/image/jpeg;b...FT436my2P/2Q==
اينم سورسش:
IdTCPClient1.Disconnect;
IdTCPClient1.Host:='xxxx.xxxx.xxxx.xxxx';
IdTCPClient1.Connect();
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
اين قطعه كد تو يه حلقه for هستش، به تعداد يوزرهايي كه توي چك ليست باكس هستن و انتخاب شدن تكرار ميشه و هربار ip اونارو عوض ميكنه و ميفرسته
try
if MainForm.IdTCPClient1.Connected = true then
begin
MainForm.IdTCPClient1.Disconnect;
MainForm.IdTCPClient1.Host:=ListBoxUserIP.Items[i];
MainForm.IdTCPClient1.Connect();
end
else
begin
MainForm.IdTCPClient1.Host:=ListBoxUserIP.Items[i];
MainForm.IdTCPClient1.Connect();
end;
MainForm.IdTCPClient1.WriteLn('test');
except
MainForm.IdTCPClient1.Disconnect;
end;
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
این کد بدونه هیچ مشکلی کار میکنه:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Byte;
begin
for i := 0 to ListBox1.Items.Count - 1 do
begin
with IdTCPClient1 do
begin
if Connected then
Disconnect;
Host := trim(ListBox1.Items[i]);
Port := 80;
Connect;
try
IOHandler.WriteLn('test');
finally
Disconnect;
end;
end;
end;
end;
البته اگه از نسخه های کمتر 10 ایندی استفاده میکنید نیاز به IOHandler ندارید.
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
ممنون از لطفتون جناب GOLD؛
يه مسئله اي! اگه كاربري كه بهش قراره پيام بديم برنامه ش در حال اجرا نباشه همون پيغامي رو ميده كه عرض كردم!
تو اين روش حتما hostي رو كه به client منتصب ميكنيم بايد on باشه؟!
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
نقل قول:
و اين روش حتما hostي رو كه به client منتصب ميكنيم بايد on باشه؟!
دقیقا.
میتونید پیغام رو هندل کنید و پیام مورد نظرتون رو به کاربر نشون بدید.
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
نقل قول:
میتونید پیغام رو هندل کنید و پیام مورد نظرتون رو به کاربر نشون بدید.
لطفا ميشه بيشتر توضيح بديد، اگه با يه مثال باشه خيلي ممنونوتون ميشم
نقل قول: اين "socket error # 10061 connection refused" واسه چيه!
اگه دلتون خواست خودتون هم یه تلاشی بکنید.
در این سایت چندین بار در مورد مدیریت خطا صحبت شده:
procedure TForm1.Button1Click(Sender: TObject);
var
i: Byte;
begin
try
for i := 0 to ListBox1.Items.Count - 1 do
begin
with IdTCPClient1 do
begin
if Connected then
Disconnect;
Host := trim(ListBox1.Items[i]);
Port := 80;
Connect;
try
IOHandler.WriteLn('test');
finally
Disconnect;
end;
end;
end;
except
ShowMessage('در ارتباط مشکلی به وجود آمده');
end;
end;