0% found this document useful (0 votes)
386 views

Socket Programming in Java

The document discusses socket programming in Java and provides steps for opening sockets, creating input and output streams, and closing sockets for both clients and servers. For clients, it explains how to open a socket by specifying a machine name and port number, create input and output streams, and close sockets by closing the streams and socket. For servers, it explains how to open a server socket to listen for client connections, create input and output streams to communicate with clients, and close sockets by closing the streams and server socket. Examples of an echo client and server are also provided.

Uploaded by

Malu Sakthi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
386 views

Socket Programming in Java

The document discusses socket programming in Java and provides steps for opening sockets, creating input and output streams, and closing sockets for both clients and servers. For clients, it explains how to open a socket by specifying a machine name and port number, create input and output streams, and close sockets by closing the streams and socket. For servers, it explains how to open a server socket to listen for client connections, create input and output streams to communicate with clients, and close sockets by closing the streams and server socket. Examples of an echo client and server are also provided.

Uploaded by

Malu Sakthi
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

Socket Programming

in Java
-First Step of Network Programming-
How to Open a Socket?
-Client-
Socket MyClient;
MyClient = new Socket("Machine name",
PortNumber);
How to Open a Socket?
-Client-
 Machine name is the machine you are trying to
open a connection to(ex: ip address or
workstation name), and PortNumber is the port
(a number) on which the server you are trying to
connect to is running.
 When selecting a port number, you should note
that port numbers between 0 and 1,023 are
reserved for privileged users (that is, super user
or root).
How to Open a Socket?
-Client-
 These port numbers are reserved for standard
services, such as email, FTP, and HTTP.
 When selecting a port number for your server,
select one that is greater than 1,023!
How to Open a Socket?
-Client-
 With exception handling, the code look like following:

Socket MyClient;
try {
MyClient = new Socket("Machine name", PortNumber);
}
catch (IOException e) {
System.out.println(e);
}
How to Open a Socket?
-Server-
ServerSocket MyService;
try {
MyServerice = new ServerSocket(PortNumber);
}
catch (IOException e) {
System.out.println(e);
}
How to Open a Socket?
-Server-
 When implementing a server you also need to create a socket
object from the ServerSocket in order to listen for and accept
connections from clients.

Socket clientSocket = null;


try {
serviceSocket = MyService.accept();
}
catch (IOException e) {
System.out.println(e);
}
How Do I Create an Input Stream?
-Client-
 On the client side, you can use the DataInputStream class to
create an input stream to receive response from the server:

DataInputStream input;
try {
input = new DataInputStream(MyClient.getInputStream());
}
catch (IOException e) {
System.out.println(e);
}
How Do I Create an Input Stream?
-Client-
 The class DataInputStream allows you to read
lines of text and Java primitive data types in a
portable way.
 It has methods such as read, readChar, readInt,
readDouble, and readLine,.
 Use whichever function you think suits your
needs depending on the type of data that you
receive from the server.
How Do I Create an Input Stream?
-Server-
 On the server side, you can use DataInputStream to receive
input from the client

DataInputStream input;
try {
input = new DataInputStream(serviceSocket.getInputStream());
}
catch (IOException e) {
System.out.println(e);
}
How do I Create an Output Stream?
-Client-
 On the client side, you can create an output
stream to send information to the server socket
using the class PrintStream or
DataOutputStream of java.io:
How do I Create an Output Stream?
-Client-
PrintStream output;
try {
output = new PrintStream(MyClient.getOutputStream()); }
catch (IOException e) {
System.out.println(e);
}
How do I Create an Output Stream?
-Client-
 The class PrintStream has methods for
displaying textual representation of Java
primitive data types.
 you may use the DataOutputStream
How do I Create an Output Stream?
-Client-
DataOutputStream output;
try {
output = new DataOutputStream(MyClient.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
How do I Create an Output Stream?
-Client-
 The class DataOutputStream allows you to write
Java primitive data types; many of its methods
write a single Java primitive type to the output
stream.
 The method writeBytes is a useful one.
How do I Create an Output Stream?
-Server-
 On the server side, you can use the class PrintStream to send
information to the client.

PrintStream output;
try {
output = new PrintStream(serviceSocket.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
How do I Create an Output Stream?
-Server-
 You can use the class DataOutputStream as mentioned

DataOutputStream output;
try {
output = new
DataOutputStream(serviceSocket.getOutputStream());
}
catch (IOException e) {
System.out.println(e);
}
How Do I Close Sockets?
-Client-
 You should always close the output and input stream
before you close the socket.
try {
output.close();
input.close();
MyClient.close();
}
catch (IOException e) {
System.out.println(e);
}
How Do I Close Sockets?
-Server-
try {
output.close();
input.close();
serviceSocket.close();
MyService.close();
}
catch (IOException e) {
System.out.println(e);
}
Examples
-Client-
 When programming a client, you must follow these four steps:

1.Open a socket.
2.Open an input and output stream to
the Socket.
3.Read from and write to the socket
according to the server's protocol.
4.Clean up.

 These steps are pretty much the same for all clients. The only step that varies
is step three, since it depends on the server you are talking to.

 Echo Client Example


Examples
-Server-
 In following example, Basically, the echo server
receives text from the client and then sends that
exact text back to the client.
 Echo Server Example
Thank you….
Discussion & Comments

You might also like