Download presentation
Presentation is loading. Please wait.
Published byKristofer Hutcheon Modified over 10 years ago
1
Java Network Programming Vishnuvardhan.M
2
Dept. of Computer Science - SSBN Java Overview Object-oriented Developed with the network in mind Built-in exception handling Extensive standard class library Java Network Programming 2
3
Dept. of Computer Science - SSBN Important Java Packages java.net TCP/IP networking java.io I/O streams & utilities java.rmi Remote Method Invocation java.security Security policies java.lang Threading classes Java Network Programming 3
4
Dept. of Computer Science - SSBN Java Sockets Programming Java uses BSD-style sockets to interface with TCP/IP services ( java.net package) java.net Java distinguishes between UDP, TCP server & TCP client sockets Behind-the-scenes classes do the actual work & can be updated or swapped out transparently Java Network Programming 4
5
Dept. of Computer Science - SSBN IP Addresses & Hostnames java.net.InetAddress class java.net.InetAddress Represents a single IP address Factory class – no public constructor Performs transparent DNS lookups or reverse lookups java.net.UnkownHostException thrown if DNS system can’t find IP address for specific host java.net.UnkownHostException Java Network Programming 5
6
Dept. of Computer Science - SSBN TCP Server Sockets java.net.ServerSocket class java.net.ServerSocket Binds to a local port to listen for initial connections Can be bound to a local IP for multi-homed machines accept() method returns a java.net.Socket, not an integer descriptor java.net.Socket Java Network Programming 6
7
Dept. of Computer Science - SSBN TCP Client Sockets java.net.Socket class java.net.Socket Combines socket with socket options (timeout, linger, keep alive, no delay, etc) Encapsulates a java.io.InputStream and a java.io.OutputStream – can be retrieved for use in a layered I/O system java.io.InputStream java.io.OutputStream Java Network Programming 7
8
Dept. of Computer Science - SSBN UDP Sockets java.net.DatagramSocket class java.net.DatagramSocket Java makes no distinction between client/server for UDP sockets Connected mode UDP supported in Java 2 Can be bound to both a local port & a local IP address – multi-homed support Supports some socket options (timeout, buffer size) Java Network Programming 8
9
Dept. of Computer Science - SSBN UDP Datagrams java.net.DatagramPacket class java.net.DatagramPacket Expects a byte array of data Address optional for connected-mode UDP This class is final – can’t be extended! java.net.DatagramSocket instances can only send instances of java.net.DatagramPacket java.net.DatagramSocket java.net.DatagramPacket Java Network Programming 9
10
Dept. of Computer Science - SSBN Threading Java doesn’t support the notion of forking processes; how do we support concurrency? Java Network Programming 10 –Java was designed to support multi- threading! –In server environments we can spawn new threads to handle each client threads –Thread groups allow for collective control of many threads Thread groupsThread groups
11
Dept. of Computer Science - SSBN Java Servlets Servlets are the Java analog to CGI Advantages of servlets: full access to other Java APIs, persistence between invocations, guaranteed portability Servlets can be generic services or specific to HTTP Java Network Programming 11
12
Dept. of Computer Science - SSBN HTTP Servlets javax.servlet.http.HttpServlet class javax.servlet.http.HttpServlet Uses HTTP to receive requests and generate responsesrequestsresponses Full support for all HTTP methods, cookies, sessions, persistent connectionscookies Servlets can be chained – example: de-blink servlet Java Network Programming 12
13
Dept. of Computer Science - SSBN Java Applets Client-side Java programs that run in a browser Applets have special security restrictions called the applet sandbox Only applets loaded over the network are subject to the applet sandbox The applet sandbox is controlled by a java.lang.SecurityManager java.lang.SecurityManager Java Network Programming 13
14
Dept. of Computer Science - SSBN Applet Sandbox Can’t load libraries or define native methods Can’t access local host filesystem Can’t open sockets to hosts other than originating host Can’t use Runtime.exec() Runtime.exec() Applet windows have a unique appearance Restricted access to certain system properties Java Network Programming 14
15
Dept. of Computer Science - SSBN Escaping the Applet Sandbox Browsers can define their own security policy via a new security manager security manager Applets can be signed and executed as trusted content Security policies may vary from browser to browser, even for signed applets Java Network Programming 15
16
Dept. of Computer Science - SSBN Remote Method Invocation (RMI) RMI is the Java analog to RPC RMI servers use a naming service (rmiregistry) to register remote objectsremote objects RMI servers use a special security policy implemented by RMISecurityManager RMISecurityManager The default RMI transport mechanism is via TCP sockets – this is transparent to RMI code! Any object transferred in an RMI call must implement the Serializable interfaceSerializable Java Network Programming 16
17
Dept. of Computer Science - SSBN Java Naming & Directory Interface (JNDI) JNDI provides a generic API that can be used to interface with any naming system JNDI JNDI uses SPIs (service provider interfaces) to access many different types of naming & directory services from the JNDI API Sun supplies JNDI SPIs for LDAP, NIS, COS (CORBA naming), RMI registry & local filesystem Java Network Programming 17
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.