TIdIcmpClient在PING时,只能PING对方的IP,不能获得对方端口是否打开的信息,请教解决方法。
11 个解决方案
#1
telnet 命令实现
telnet IP地址 端口号
telnet IP地址 端口号
#2
Winexec(Pchar('telnet 192.168.0.3 1111'),SW_Hide) ???
我如何获得返回值?
我如何获得返回值?
#3
up
#4
帮你关注,收藏
#5
高手在哪?
#6
关注。。。
#7
我已解决该问题,贴出来与大家分享
uses
winsock
..........
procedure TForm1.Button1Click(Sender: TObject);
var
s:tsocket;
error:integer;
server:tsockaddrin;
begin
server.sin_addr.S_addr:=inet_addr('192.168.0.3');
s:=socket(AF_INET, SOCK_STREAM, 0);
server.sin_port:=htons(1024);
server.sin_family:=AF_INET;
error:=connect(s,server,sizeof(server));
if error=0 then
showmessage('a')//该端口已打开
else
showmessage('b');//未打开
closesocket(s);
end;
uses
winsock
..........
procedure TForm1.Button1Click(Sender: TObject);
var
s:tsocket;
error:integer;
server:tsockaddrin;
begin
server.sin_addr.S_addr:=inet_addr('192.168.0.3');
s:=socket(AF_INET, SOCK_STREAM, 0);
server.sin_port:=htons(1024);
server.sin_family:=AF_INET;
error:=connect(s,server,sizeof(server));
if error=0 then
showmessage('a')//该端口已打开
else
showmessage('b');//未打开
closesocket(s);
end;
#8
晕!楼主真是有意思,你这样的实现方法和socket连接有什么区别吗?
我觉得你可以直接在onerror事件添加一个ShowMessage("服务器未开启!");
我觉得你可以直接在onerror事件添加一个ShowMessage("服务器未开启!");
#9
楼上请指教如何做
#10
在ClientSocket控制的onerror事件,添加
errorcode:=0;
ShowMessage("服务器未开启!");
errorcode:=0;
ShowMessage("服务器未开启!");
#11
to:
我的问题是ClienSocket如果遇到未打开端口的连接速度很慢,造成程序像死机一样,这个如何解决,errorcode:=0这个我早就知道了。
我刚才试着用多线程写了一下,似乎是解决了
我的问题是ClienSocket如果遇到未打开端口的连接速度很慢,造成程序像死机一样,这个如何解决,errorcode:=0这个我早就知道了。
我刚才试着用多线程写了一下,似乎是解决了
#1
telnet 命令实现
telnet IP地址 端口号
telnet IP地址 端口号
#2
Winexec(Pchar('telnet 192.168.0.3 1111'),SW_Hide) ???
我如何获得返回值?
我如何获得返回值?
#3
up
#4
帮你关注,收藏
#5
高手在哪?
#6
关注。。。
#7
我已解决该问题,贴出来与大家分享
uses
winsock
..........
procedure TForm1.Button1Click(Sender: TObject);
var
s:tsocket;
error:integer;
server:tsockaddrin;
begin
server.sin_addr.S_addr:=inet_addr('192.168.0.3');
s:=socket(AF_INET, SOCK_STREAM, 0);
server.sin_port:=htons(1024);
server.sin_family:=AF_INET;
error:=connect(s,server,sizeof(server));
if error=0 then
showmessage('a')//该端口已打开
else
showmessage('b');//未打开
closesocket(s);
end;
uses
winsock
..........
procedure TForm1.Button1Click(Sender: TObject);
var
s:tsocket;
error:integer;
server:tsockaddrin;
begin
server.sin_addr.S_addr:=inet_addr('192.168.0.3');
s:=socket(AF_INET, SOCK_STREAM, 0);
server.sin_port:=htons(1024);
server.sin_family:=AF_INET;
error:=connect(s,server,sizeof(server));
if error=0 then
showmessage('a')//该端口已打开
else
showmessage('b');//未打开
closesocket(s);
end;
#8
晕!楼主真是有意思,你这样的实现方法和socket连接有什么区别吗?
我觉得你可以直接在onerror事件添加一个ShowMessage("服务器未开启!");
我觉得你可以直接在onerror事件添加一个ShowMessage("服务器未开启!");
#9
楼上请指教如何做
#10
在ClientSocket控制的onerror事件,添加
errorcode:=0;
ShowMessage("服务器未开启!");
errorcode:=0;
ShowMessage("服务器未开启!");
#11
to:
我的问题是ClienSocket如果遇到未打开端口的连接速度很慢,造成程序像死机一样,这个如何解决,errorcode:=0这个我早就知道了。
我刚才试着用多线程写了一下,似乎是解决了
我的问题是ClienSocket如果遇到未打开端口的连接速度很慢,造成程序像死机一样,这个如何解决,errorcode:=0这个我早就知道了。
我刚才试着用多线程写了一下,似乎是解决了