Сканирование UDP на Ява

Модератор: Absurd

Ответить
omnikar
Сообщения: 7
Зарегистрирован: 03 мар 2005, 17:07

06 мар 2005, 20:54

Здравствуйте! Я только начал осваиваться с Явой, поэтому мне тут многое не понятно. Нужно проверить порт на открытость на PHP делаю так:

$host='194.242.33.27';$timeout=1;$step=2;$messag="Hi!";$port=1720;
$handle=fsockopen("udp://$host", $port, $errno, $errstr, $timeout);
if (!$handle){
stream_set_timeout($handle, $timeout);
$write=fwrite($handle,$messag);
if(!$write){
echo "Error in writing to socked
\r\n";
break;
}
$write1=fread($handle,1024);
fclose($handle);}

На Яве пробую так:

public class UDPClient
{
public static void main (String arg[]) throws Exception{
DatagramSocket clientSocket = new DatagramSocket(1720);
InetAddress IPAddress=InetAddress.getByName("194.242.33.27");
int port=1720;
String sentence="Hi!";
byte[] sendData= new byte[1024];
byte[] receiveData= new byte[1024];
sendData=sentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port);
clientSocket.setSoTimeout(1000);
clientSocket.send(sendPacket);
try {
DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence=new String(receivePacket.getData(),0);
System.out.println("From Server"+modifiedSentence);
}
catch (IOException e) {
System.err.println(e);
}
clientSocket.close();
}}

Скажите пожалуйста, что не правильно в моем коде Java? Например тест данного порта на PHP указывает на его открытость и операция завершается нормально. А на Ява почему то сокет закрывается по таймауту, как будто порт закрыт.
Deady
Сообщения: 193
Зарегистрирован: 17 фев 2004, 13:13
Откуда: Москва
Контактная информация:

09 мар 2005, 11:37

а открыть его пробовал?
из javadoc:

void connect(InetAddress address, int port)
Connects the socket to a remote address for this socket.
Ответить