for i:=1 to 8 do
begin
try
begin
Clientsocket3.Active:=False;
ClientSocket3.Host:='128.64.32.'+inttostr(i);
Clientsocket3.Active:=True;
end;
except
showmessage('Failed');
end;
end;当第一行为 for i:=1 to 1 do 的时候就可以连接到 128.64.32.1
当第一行为 for i:=2 to 2 do 的时候也可以连接到 128.64.32.2但是只要循环连接,比如 for i:=1 to 2 do 就一台也连不上,
尝试了每次连接后Sleep(1000);也不行,请教解决的办法,谢谢解决一定给分。
begin
try
begin
Clientsocket3.Active:=False;
ClientSocket3.Host:='128.64.32.'+inttostr(i);
Clientsocket3.Active:=True;
end;
except
showmessage('Failed');
end;
end;当第一行为 for i:=1 to 1 do 的时候就可以连接到 128.64.32.1
当第一行为 for i:=2 to 2 do 的时候也可以连接到 128.64.32.2但是只要循环连接,比如 for i:=1 to 2 do 就一台也连不上,
尝试了每次连接后Sleep(1000);也不行,请教解决的办法,谢谢解决一定给分。
解决方案 »
- 竖着站 DBGrid 控件: TVDBGrid ; 出错!!!!!
- fastreport的安装问题!
- 用什么方法往数据库中的Image 类型字段存入图片。
- 急急急,在线等待,100分重谢!
- 哪里能下载QuickReport v3.5或者更高版本?
- 哪位有Multimedia Conversion Library的注册码
- touch in delphi 2010
- socket编程的问题,如何突破防火墙!
- 如何声明一个宏?最快回答正确的给20分
- 为什么从DateTimePicker取出的值不等于TimeToStr('00:20:00')?
- 一个关于版次设置的问题,很急,请高手赐教!
- 关于视频开发的问题!
var
Count: integer;
Flag: boolean;
begin
Count := 1;
flag := true;
While count <= 8 do
begin
try
if flag then
begin
Inc(Count);
flag := false;
Clientsocket3.Active:=False;
sleep(100);
ClientSocket3.Host:='128.64.32.'+inttostr(i);
Clientsocket3.Active:=True;
flag := true;
end;
except
showmessage('Failed');
end;
end;
ClientSocket3.Host:='128.64.32.'+inttostr(Count);
begin
try
Clientsocket3.Active:=False;
ClientSocket3.Host:='128.64.32.'+inttostr(i);
Clientsocket3.Connect();
flag = true;
except
else
showmessage('Failed');
flag = False;
end;
if flag then break;
end;
>> halfdream(哈欠) 一定要用阻塞方式才行.
說得也有理;>>sleep(1000)只有0.001秒,这么短的时间不一定能保证连上网络.
是0.1秒;
blocking方式我也用了,等待时间很长,也连不上,
sleep(1000)也不行,请各位再看看,谢谢
Clientsocket3.Active:=False;
改成
Clientsocket3.Close;
在Clientsocket3.Active:=False;后加上Clientsocket3.Close;
在Clientsocket3.Active:=True;前加上Clientsocket3.Open;
for i:=1 to 8 do
begin
try
begin
Clientsocket3.Active:=False;
sleep(100);
ClientSocket3.Host:='128.64.32.'+inttostr(i);
Clientsocket3.Active:=True;
ClientSocket3.Socket.Lock;
end;
except
showmessage('Failed');
end;
end;
1。你在服务器端的socket激活了没有?
2。别用for结构,改if ....then...else结构试试?或你先向一个IP连接试试?也许是其他的问题?
begin
for i:=1 to 8 do
begin
try
begin
Clientsocket3.Active:=False; begintime:=gettickcount;
while gettickcount - begintime < 200 do //可以不要200毫秒,看情况设
Application.ProcessMessages; ClientSocket3.Host:='128.64.32.'+inttostr(i);
ClientSocket3.Port:=你的端口号; //最好端口也要写上;
Clientsocket3.Active:=True; begintime:=gettickcount;
while gettickcount - begintime < 1000 do //可以不要1000毫秒,看情况设
Application.ProcessMessages; end;
except
showmessage('Failed');
end;
end;
end;
连接服务器应该要指明端口的啊
也感谢其他热心的朋友!
非常谢谢你们,感谢csdn.