23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
Java Tutorial
What is Java
History of Java
Features of Java
C++ vs Java
Hello Java Program
Program Internal
How to set path?
JDK, JRE and JVM
JVM: Java Virtual Machine
Java Variables
Java Data Types
Unicode System
Operators
Keywords
DoubleBuffer limit() methods in Java with Examples
Java short Keyword
Java long Keyword
Java Versions History
Java String valueOf()
Java Integer getInteger() Method
Control Statements
https://www.javatpoint.com/socket-programming 1/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Java Control Statements
Java If-else
Java Switch
Java For LoopAdvertisement
Java While Loop
Java Do While Loop
← prev next →
Java Socket Programming
Java Socket programming is used for communication between the applications running
on different JRE.
Java Socket programming can be connection-oriented or connection-less.
Socket and ServerSocket classes are used for connection-oriented socket programming
and DatagramSocket and DatagramPacket classes are used for connection-less socket
programming.
The client in socket programming must know two information:
Home Python Java JavaScript HTML SQL PHP
https://www.javatpoint.com/socket-programming 2/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
1. IP Address of Server, and
2. Port number.
Here, we are going to make one-way client and server communication. In this
application, client sends a message to the server, server reads the message and prints it.
Here, two classes are being used: Socket and ServerSocket. The Socket class is used to
Advertisement
communicate client and server. Through this class, we can read and write message. The
ServerSocket class is used at server-side. The accept() method of ServerSocket class
blocks the console until the client is connected. After the successful connection of client,
it returns the instance of Socket at server-side.
Socket class
A socket is simply an endpoint for communications between the machines. The Socket
class can be used to create a socket.
Important methods
Method Description
https://www.javatpoint.com/socket-programming 3/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
1) public InputStream returns the InputStream attached with
getInputStream() this socket.
2) public OutputStream returns the OutputStream attached
getOutputStream() with this socket.
Advertisement
3) public synchronized void close() closes this socket
ServerSocket class
The ServerSocket class can be used to create a server socket. This object is used to
establish communication with the clients.
Important methods
Method Description
1) public Socket accept() returns the socket and establish a
connection between server and client.
2) public synchronized void close() closes the server socket.
Example of Java Socket Programming
Creating Server:
To create the server application, we need to create the instance of ServerSocket class.
Here, we are using 6666 port number for the communication between the client and
server. You may also choose any other port number. The accept() method waits for the
client. If clients connects with the given port number, it returns an instance of Socket.
ServerSocket ss=new ServerSocket(6666);
Socket s=ss.accept();//establishes connection and waits for the client
Creating Client:
https://www.javatpoint.com/socket-programming 4/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
To create the client application, we need to create the instance of Socket class. Here, we
need to pass the IP address or hostname of the Server and a port number. Here, we are
using "localhost" because our server is running on same system.
Advertisement
Socket s=new Socket("localhost",6666);
Let's see a simple of Java socket programming where client sends a text and server
receives and prints it.
File: MyServer.java
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args){
try{
ServerSocket ss=new ServerSocket(6666);
Socket s=ss.accept();//establishes connection
DataInputStream dis=new DataInputStream(s.getInputStream());
String str=(String)dis.readUTF();
System.out.println("message= "+str);
ss.close();
}catch(Exception e){System.out.println(e);}
}
}
File: MyClient.java
import java.io.*;
import java.net.*;
public class MyClient {
public static void main(String[] args) {
try{
Socket s=new Socket("localhost",6666);
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
dout.writeUTF("Hello Server");
https://www.javatpoint.com/socket-programming 5/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
dout.flush();
dout.close();
s.close();
}catch(Exception e){System.out.println(e);}
}
} Advertisement
download this example
To execute this program open two command prompts and execute each program at
each command prompt as displayed in the below figure.
After running the client application, a message will be displayed on the server console.
Example of Java Socket Programming (Read-Write both side)
In this example, client will write first to the server then server will receive and print the
text. Then server will write to the client and client will receive and print the text. The step
goes on.
https://www.javatpoint.com/socket-programming 6/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
File: MyServer.java
import java.net.*;
import java.io.*;
class MyServer{
public static void main(String args[])throws Exception{
ServerSocket ss=new ServerSocket(3333);
Socket s=ss.accept();
DataInputStream din=new DataInputStream(s.getInputStream());
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str="",str2="";
while(!str.equals("stop")){
str=din.readUTF();
System.out.println("client says: "+str);
str2=br.readLine();
dout.writeUTF(str2);
dout.flush();
}
din.close();
s.close();
ss.close();
}}
File: MyClient.java
import java.net.*;
import java.io.*;
class MyClient{
public static void main(String args[])throws Exception{
Socket s=new Socket("localhost",3333);
https://www.javatpoint.com/socket-programming 7/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
DataInputStream din=new DataInputStream(s.getInputStream());
DataOutputStream dout=new DataOutputStream(s.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str="",str2="";
while(!str.equals("stop")){
Advertisement
str=br.readLine();
dout.writeUTF(str);
dout.flush();
str2=din.readUTF();
System.out.println("Server says: "+str2);
}
dout.close();
s.close();
}}
Next Topic URL class
← prev next →
https://www.javatpoint.com/socket-programming 8/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 9/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 10/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 11/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 12/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 13/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 14/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 15/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
Latest Courses
https://www.javatpoint.com/socket-programming 16/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 17/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 18/19
23/11/2024 20:36 Java Socket Programming (Java Networking Tutorial) - javatpoint
Advertisement
https://www.javatpoint.com/socket-programming 19/19