Download presentation
Presentation is loading. Please wait.
1
Java Socket Support Presentation by: Lijun Yuan Course Number: cs Course Name: Software Engineering
2
What Is Socket A socket is one endpoint of a two-way communication
link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent. A socket in use usually has an address bound to it. The nature of the address depends on the communication domain of the socket. A single socket can communicate in only one domain.
3
Where Is Socket From? Originally developed in 4.2BSD (Berkeley Software Distribution), cka Berkeley UNIX. In UNIX, a process has a set of I/O descriptors that one reads from and writes to. These descriptors may refer to communication channels (sockets). The lifetime of a descriptor is made up of three phases: creation (open socket), reading and writing (receive and send to socket), and destruction (close socket).
4
Three Major Protocols Used For Socket
Internet Protocol (IP): a low-level routing protocol that breaks data into small packets and sends them to an address across a network, which is not reliable. Transmission Control Protocol (TCP): a higher-level protocol that strings together the packets, routing and retransmitting them as necessary to reliably transmit your data. User Datagram Protocol (UDP): sits next to TCP and can be used directly to support fast, connectionless, unreliable transport of packets.
5
Five Socket Types Datagram socket Stream socket
Reliably delivered message socket Raw socket Sequenced packet socket
6
Java Socket Support Three types of sockets in Java
The Java environment implements portable socket objects by stacking several object layers on top of low-level, platform-specific procedures. Three types of sockets in Java TCP/IP Socket (supported by Socket and SeverSocket classes) UDP Socket (supported by DatagramSocket class) Multicast Socket (supported by MulticastSocket class)
7
TCP/IP Socket in Java TCP/IP sockets are used to implement reliable,
bi-directional, persistent, point-to-point, stream- based connections between hosts on the Internet Useful for implementing network services – such as remote login (telnet, rlogin) and file transfer (FTP) – which require data of indefinite length to be transferred.
8
blocks until connection from client
TCP/IP Server Figure 1 Socket function for TCP client-server ServerSocket well-known port bind listen TCP/IP Client accept Socket blocks until connection from client connection establishment connect (TCP three-way handshake) write Read data (request) process request data (reply) read Write end-of-file notification read Close Conn. Close Conn.
9
Seven Basic Operations
Connect to a remote machine Send data Receive data Close a connection Listen for incoming data Bind to port Needed only by the server Accept connections from remote machines on the bound port
10
Socket Class -Characteristics
Socket class is Java’s fundamental class for performing client-side TCP operation. This class is used for creating TCP connections over an IP network This class itself uses native code to communicate with the local TCP stack of the host operating system The interface that the Socket class provides to the programmer is streams
11
Socket Class -Constructors Four public constructors:
Public Socket(String host, int port) throws UnknownHostException, IOException Public Socket(InetAddress host, int port) throws IOException Public Socket(String host, int port, InetAddress interface, int localPort) throws IOException Public Socket(InetAddress host, int port, InetAddress interface, int localPort) throws IOException Two protected constructors Protected Socket() Protected Socket(SocketImpl impl)
12
Socket Class -How does it work? Step one Step two
The creation of a Socket object implicitly establishes a connection between the client and server. Server p o r t Connection request Client Step two Server p o r t Client p o r t connection port
13
ServerSocket Class The SeverSocket is designed to be a “listener”, which waits for clients to connect before doing anything Server sockets wait for connections while client sockets initiate connections Listen for either local or remote client programs to connect to them on published ports.
14
How many request I can hold?
ServerSocket Class -Constructors Three Public Constructors ServerSocket(int port), ServerSocket(int port, int maxQueue) ServerSocket(int port, int maxQueue, InetAddress localAddress) How many request I can hold?
15
UDP Socket in Java Less complex Incurs fewer overheads
Used in bandwidth-limited applications, where the overhead associated with resending packets is not tolerable. A good example: real-time network audio applications. Implemented by DatagramPacket class & DatagramSocket class
16
blocks until datagram received from a client
UDP Sever Socket() bind recvfrom UDP Client Socket() blocks until datagram received from a client data (request) sendto process request data (reply) sendto recvfrom close Socket functions for UDP client-server
17
The Two Major Classes DatagramPacket class DatagramSocket Class
Each DatagramPacket contains a data buffer, the address of the remote host to send the data to, and the port number the remote agent is listening to DatagramSocket Class In order for two agents to talk to each other over a UDP connection, a DatagramSocket object is created to ensure they both connected to a port on their local machines.
18
How does it work? The DatagramPacket class stuffs bytes of data into UDP packets called datagrams and lets you unstuffy datagrams that you receive A DatagramSocket sends and receives data using UDP packets, represented as DatagramPacket objects The remote process can receive the data in the form of a DatagramPacket by calling the receive() method on its DatagramSocket
19
Multicast Sockets Multicasting sends data from one host to many different hosts, but not to everyone; the data goes only to clients that have expressed and interest in the data by joining a particular multicast group On the Internet, such event like video conference, is best implemented using Multicasting that built on top of UDP Multicast Sockets in Java uses the DatagramPacket class along with a new MulticastSocket class.
20
With Multicast Sockets Without Multicast Sockets
Client Router The Internet Router Server the simplest possible multicast configurations
21
Why need Multicasting? The growing requirement
All the unicast sockets provide point-to-point communication and create a connection with two well-defined endpoints. However, many tasks require a different model. For example, the television station need to broadcast to every user and Video conferencing, by contrast, sends an audio-video feed to a select group of people using multicast. Multicasting is broader than unicast, but narrower and more targeted than broadcast communication. The resources saving and the traffic relief The goal of multicast sockets is that no matter how complex the network, the same data should never be sent more than once over any given network segment
22
How to do it? Step one Step two Step three
Create a MulticastSocket object and have the socket join a multicast group Step two Stuff the address of the multicast group in the DatagramPacket you want to send. Step three The routers and the MulticastSocket class take care of the rest .
23
Four Key Operations The behavior of MulticastSocket is very similar to DatagramSocket’s Join a multicast group Send data to the member of the group 3. Receive data from the group 4. Leave the group
24
Problems Performance Security Complexity
Restriction on multicast socket
25
Thank You
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.