Program funguje jako hodinky uvnitr site, data posilam na 9100. Tak sem porty 9000-9100 forwardnul ale kdyz zadam moji verejnou IP tak se to nespoji. Muzu se jeste podivat tim Nmapem.
Funguje to krasne, zadny ruchy, relatka otevru nebo zavru ale pak zustanou jak jsou.
Ale pracuju - analogicky s tim co jste mi tu uz poradili na verzi pro JAVU, aspon sem se dokopal k tomu se s tim zabejvat.
EDIT :
Takze tady je co mi napsal nmap :
nmap -sT -PN -p 9100 lenis.homelinux.net
Starting Nmap 5.00 ( http://nmap.org ) at 2010-09-21 01:04 CEST
Interesting ports on e178075184.adsl.alicedsl.de (85.178.75.184):
PORT STATE SERVICE
9100/tcp closed jetdirect
Pritom jsem to ted kontroloval a porty 9000-9200 jsou otevreny na tu adresu toho Printserveru
Jinak v JAVE jsem se dohrabal tohoto :
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ipRelay {
/**
* @param args
* @throws UnknownHostException
*/
public static void main(String[] args) throws UnknownHostException {
if (args.length != 2)
{
System.err.println ("Invalid paramaters : syntax ip:port value");
System.exit(1);
}
if (args[0].indexOf(":") == -1)
{
System.err.println ("No portnumber found : syntax ip:port value");
System.exit(1);
}
String[] inputParam = args[0].split(":");
if (inputParam.length != 2)
{
System.err.println ("Invalid paramaters : syntax ip:port value");
System.exit(1);
}
InetAddress ip = InetAddress.getByName(inputParam[0]) ;
short port = Short.parseShort(inputParam[1]) ;
byte value = Byte.parseByte(args[1]) ;
short timeout = 1000 ;
try
{
Socket socket = new Socket(ip, port);
for(int count = 0; count < 5; count++)
{
System.out.println("Connection attempt nr. " +count);
if(ip.isReachable(timeout))
{
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.print(value);
out.close();
socket.close();
}
}
}
catch (UnknownHostException ex)
{
Logger.getLogger(ipRelay.class.getName()).log(Level.SEVERE, null, ex);
}
catch (IOException ex)
{
Logger.getLogger(ipRelay.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
a svete div se, kdyz jsem zadal
java ipRelay 192.168.178.13:9100 8
udelalo to CVAK - no uplny druhy vanoce.
Teda ma to dve musky, z nichz jedna je trochu masarka.
1. hazi mi to :
Connection attempt nr. 0
Connection attempt nr. 1
21.09.2010 01:11:09 ipRelay main
SCHWERWIEGEND: null
java.net.SocketException: Socket is closed
at java.net.Socket.getOutputStream(Socket.java:846)
at ipRelay.main(ipRelay.java:49)
Hm, vzdycky mu trva dva pokusy nez ty data posle. A pak to s tim socket.close
2. Ta masarka je, ze to spina blby rele, budu to studovat zitra.
Sakrys kdybych vedel jak to rozbehat prez inet tak tam prdnu Webku at si taky hrajete