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.LinkedList;
|
||||
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.HttpPrintStream;
|
||||
import zutil.network.threaded.ThreadedUDPNetwork;
|
||||
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
||||
import zutil.wrapper.StringOutputStream;
|
||||
|
||||
/**
|
||||
* An SSDP client class that will request
|
||||
|
|
@ -21,14 +22,15 @@ import zutil.wrapper.StringOutputStream;
|
|||
* @author Ziver
|
||||
*/
|
||||
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
|
||||
private HashMap<String, LinkedList<SSDPServiceInfo>> services_st;
|
||||
private HashMap<String, SSDPServiceInfo> services_usn;
|
||||
|
||||
|
||||
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();
|
||||
ssdp.requestService("upnp:rootdevice");
|
||||
ssdp.start();
|
||||
|
|
@ -151,8 +153,8 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
|||
HTTPHeaderParser header = new HTTPHeaderParser( new String( packet.getData() ) );
|
||||
logger.log(Level.FINEST, "*********** Recived\n"+header);
|
||||
|
||||
String usn = header.getHTTPAttribute("USN");
|
||||
String st = header.getHTTPAttribute("ST");
|
||||
String usn = header.getHeader("USN");
|
||||
String st = header.getHeader("ST");
|
||||
StandardSSDPInfo service;
|
||||
// Get existing service
|
||||
if( services_usn.containsKey( usn )){
|
||||
|
|
@ -164,15 +166,15 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
|||
services_usn.put( usn, service);
|
||||
if( !services_st.containsKey(st) )
|
||||
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.setUSN( usn );
|
||||
service.setExpirationTime(
|
||||
System.currentTimeMillis() +
|
||||
1000 * getCacheTime(header.getHTTPAttribute("Cache-Control")) );
|
||||
1000 * getCacheTime(header.getHeader("Cache-Control")) );
|
||||
logger.log(Level.FINEST, "*********** Recived\n"+service);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,15 @@ import java.util.HashMap;
|
|||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import zutil.MultiPrintStream;
|
||||
import zutil.log.Logger;
|
||||
import zutil.io.StringOutputStream;
|
||||
import zutil.log.LogUtil;
|
||||
import zutil.network.http.HTTPHeaderParser;
|
||||
import zutil.network.http.HttpPrintStream;
|
||||
import zutil.network.threaded.ThreadedUDPNetworkThread;
|
||||
import zutil.network.threaded.ThreadedUDPNetwork;
|
||||
import zutil.wrapper.StringOutputStream;
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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 int DEFAULT_CACHE_TIME = 60*30; // 30 min
|
||||
public static final int BUFFER_SIZE = 512;
|
||||
|
|
@ -160,8 +161,8 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
|||
// ******* Respond
|
||||
// Check that the message is an ssdp discovery message
|
||||
if( header.getRequestType().equalsIgnoreCase("M-SEARCH") ){
|
||||
String man = header.getHTTPAttribute("Man").replace("\"", "");
|
||||
String st = header.getHTTPAttribute("ST");
|
||||
String man = header.getHeader("Man").replace("\"", "");
|
||||
String st = header.getHeader("ST");
|
||||
// Check that its the correct URL and that its an ssdp:discover message
|
||||
if( header.getRequestURL().equals("*") && man.equalsIgnoreCase("ssdp:discover") ){
|
||||
// Check if the requested service exists
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue