This commit is contained in:
parent
58a3113819
commit
02638fcb41
2 changed files with 17 additions and 14 deletions
|
|
@ -6,13 +6,14 @@ import java.net.InetAddress;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import zutil.log.Logger;
|
import zutil.io.StringOutputStream;
|
||||||
|
import zutil.log.LogUtil;
|
||||||
import zutil.network.http.HTTPHeaderParser;
|
import zutil.network.http.HTTPHeaderParser;
|
||||||
import zutil.network.http.HttpPrintStream;
|
import zutil.network.http.HttpPrintStream;
|
||||||
import zutil.network.threaded.ThreadedUDPNetwork;
|
import zutil.network.threaded.ThreadedUDPNetwork;
|
||||||
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
||||||
import zutil.wrapper.StringOutputStream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An SSDP client class that will request
|
* An SSDP client class that will request
|
||||||
|
|
@ -21,14 +22,15 @@ import zutil.wrapper.StringOutputStream;
|
||||||
* @author Ziver
|
* @author Ziver
|
||||||
*/
|
*/
|
||||||
public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{
|
public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{
|
||||||
public static final Logger logger = new Logger();
|
public static final Logger logger = LogUtil.getLogger();
|
||||||
// Contains all the received services
|
// Contains all the received services
|
||||||
private HashMap<String, LinkedList<SSDPServiceInfo>> services_st;
|
private HashMap<String, LinkedList<SSDPServiceInfo>> services_st;
|
||||||
private HashMap<String, SSDPServiceInfo> services_usn;
|
private HashMap<String, SSDPServiceInfo> services_usn;
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException{
|
public static void main(String[] args) throws IOException{
|
||||||
Logger.setGlobalLogLevel(Level.FINEST);
|
System.out.println(LogUtil.getCalingClass());
|
||||||
|
LogUtil.setGlobalLogLevel(Level.FINEST);
|
||||||
SSDPClient ssdp = new SSDPClient();
|
SSDPClient ssdp = new SSDPClient();
|
||||||
ssdp.requestService("upnp:rootdevice");
|
ssdp.requestService("upnp:rootdevice");
|
||||||
ssdp.start();
|
ssdp.start();
|
||||||
|
|
@ -151,8 +153,8 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
||||||
HTTPHeaderParser header = new HTTPHeaderParser( new String( packet.getData() ) );
|
HTTPHeaderParser header = new HTTPHeaderParser( new String( packet.getData() ) );
|
||||||
logger.log(Level.FINEST, "*********** Recived\n"+header);
|
logger.log(Level.FINEST, "*********** Recived\n"+header);
|
||||||
|
|
||||||
String usn = header.getHTTPAttribute("USN");
|
String usn = header.getHeader("USN");
|
||||||
String st = header.getHTTPAttribute("ST");
|
String st = header.getHeader("ST");
|
||||||
StandardSSDPInfo service;
|
StandardSSDPInfo service;
|
||||||
// Get existing service
|
// Get existing service
|
||||||
if( services_usn.containsKey( usn )){
|
if( services_usn.containsKey( usn )){
|
||||||
|
|
@ -164,15 +166,15 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
||||||
services_usn.put( usn, service);
|
services_usn.put( usn, service);
|
||||||
if( !services_st.containsKey(st) )
|
if( !services_st.containsKey(st) )
|
||||||
services_st.put( st, new LinkedList<SSDPServiceInfo>() );
|
services_st.put( st, new LinkedList<SSDPServiceInfo>() );
|
||||||
services_st.get( header.getHTTPAttribute("ST") ).add( service );
|
services_st.get( header.getHeader("ST") ).add( service );
|
||||||
}
|
}
|
||||||
|
|
||||||
service.setLocation( header.getHTTPAttribute("LOCATION") );
|
service.setLocation( header.getHeader("LOCATION") );
|
||||||
service.setST( st );
|
service.setST( st );
|
||||||
service.setUSN( usn );
|
service.setUSN( usn );
|
||||||
service.setExpirationTime(
|
service.setExpirationTime(
|
||||||
System.currentTimeMillis() +
|
System.currentTimeMillis() +
|
||||||
1000 * getCacheTime(header.getHTTPAttribute("Cache-Control")) );
|
1000 * getCacheTime(header.getHeader("Cache-Control")) );
|
||||||
logger.log(Level.FINEST, "*********** Recived\n"+service);
|
logger.log(Level.FINEST, "*********** Recived\n"+service);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,15 @@ import java.util.HashMap;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import zutil.MultiPrintStream;
|
import zutil.MultiPrintStream;
|
||||||
import zutil.log.Logger;
|
import zutil.io.StringOutputStream;
|
||||||
|
import zutil.log.LogUtil;
|
||||||
import zutil.network.http.HTTPHeaderParser;
|
import zutil.network.http.HTTPHeaderParser;
|
||||||
import zutil.network.http.HttpPrintStream;
|
import zutil.network.http.HttpPrintStream;
|
||||||
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
||||||
import zutil.network.threaded.ThreadedUDPNetwork;
|
import zutil.network.threaded.ThreadedUDPNetwork;
|
||||||
import zutil.wrapper.StringOutputStream;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Server class that announces an service by the SSDP
|
* A Server class that announces an service by the SSDP
|
||||||
|
|
@ -41,7 +42,7 @@ import zutil.wrapper.StringOutputStream;
|
||||||
* NTS: same as Man but for Notify messages
|
* NTS: same as Man but for Notify messages
|
||||||
*/
|
*/
|
||||||
public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{
|
public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetworkThread{
|
||||||
public static final Logger logger = new Logger();
|
public static final Logger logger = LogUtil.getLogger();
|
||||||
public static final String SERVER_INFO = "SSDP Java Server by Ziver Koc";
|
public static final String SERVER_INFO = "SSDP Java Server by Ziver Koc";
|
||||||
public static final int DEFAULT_CACHE_TIME = 60*30; // 30 min
|
public static final int DEFAULT_CACHE_TIME = 60*30; // 30 min
|
||||||
public static final int BUFFER_SIZE = 512;
|
public static final int BUFFER_SIZE = 512;
|
||||||
|
|
@ -160,8 +161,8 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
||||||
// ******* Respond
|
// ******* Respond
|
||||||
// Check that the message is an ssdp discovery message
|
// Check that the message is an ssdp discovery message
|
||||||
if( header.getRequestType().equalsIgnoreCase("M-SEARCH") ){
|
if( header.getRequestType().equalsIgnoreCase("M-SEARCH") ){
|
||||||
String man = header.getHTTPAttribute("Man").replace("\"", "");
|
String man = header.getHeader("Man").replace("\"", "");
|
||||||
String st = header.getHTTPAttribute("ST");
|
String st = header.getHeader("ST");
|
||||||
// Check that its the correct URL and that its an ssdp:discover message
|
// Check that its the correct URL and that its an ssdp:discover message
|
||||||
if( header.getRequestURL().equals("*") && man.equalsIgnoreCase("ssdp:discover") ){
|
if( header.getRequestURL().equals("*") && man.equalsIgnoreCase("ssdp:discover") ){
|
||||||
// Check if the requested service exists
|
// Check if the requested service exists
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue