Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
275 views

Socket Programming in Java

1) The document describes how to create a basic client-server application in Java using socket programming. A Socket connection is established between the client and server by specifying IP addresses and port numbers. 2) On the client side, input and output streams are used to send messages to and receive responses from the server. On the server side, a ServerSocket listens for client requests and a Socket is used for communication. 3) The client continuously sends messages to the server until "Over" is received, then it closes the connection. The server prints messages to the console until receiving "Over", then it also closes the connection.

Uploaded by

Kumar Saket
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
275 views

Socket Programming in Java

1) The document describes how to create a basic client-server application in Java using socket programming. A Socket connection is established between the client and server by specifying IP addresses and port numbers. 2) On the client side, input and output streams are used to send messages to and receive responses from the server. On the server side, a ServerSocket listens for client requests and a Socket is used for communication. 3) The client continuously sends messages to the server until "Over" is received, then it closes the connection. The server prints messages to the console until receiving "Over", then it also closes the connection.

Uploaded by

Kumar Saket
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Socket Programming in Java

This article describes a very basic one-way Client and Server setup where a Client connects, sends messages to server and the
server shows them using socket connection. There’s a lot of low-level stuff that needs to happen for these things to work but the
Java API networking package (java.net) takes care of all of that, making network programming very easy for programmers.
Client Side Programming
Establish a Socket Connection
To connect to other machine we need a socket connection. A socket connection means the two machines have information about
each other’s network location (IP Address) and TCP port.The java.net.Socket class represents a Socket. To open a socket:
Socket socket = new Socket(“127.0.0.1”, 5000)

 First argument – IP address of Server. ( 127.0.0.1 is the IP address of localhost, where code will run on single stand-alone
machine).
 Second argument – TCP Port. (Just a number representing which application to run on a server. For example, HTTP runs on
port 80. Port number can be from 0 to 65535)
Communication
To communicate over a socket connection, streams are used to both input and output the data.
Closing the connection
The socket connection is closed explicitly once the message to server is sent.
In the program, Client keeps reading input from user and sends to the server until “Over” is typed.

import java.net.*;
import java.io.*;

public class Client


{
// initialize socket and input output streams
private Socket socket = null;
private DataInputStream input = null;
private DataOutputStream out = null;

// constructor to put ip address and port


public Client(String address, int port)
{
// establish a connection
try
{
socket = new Socket(address, port);
System.out.println("Connected");

// takes input from terminal


input = new DataInputStream(System.in);

// sends output to the socket


out = new DataOutputStream(socket.getOutputStream());
}
catch(UnknownHostException u)
{
System.out.println(u);
}
catch(IOException i)
{
System.out.println(i);
}

// string to read message from input


String line = "";

// keep reading until "Over" is input


while (!line.equals("Over"))
{
try
{
line = input.readLine();
out.writeUTF(line);
}
catch(IOException i)
{
System.out.println(i);
}
}

// close the connection


try
{
input.close();
out.close();
socket.close();
}
catch(IOException i)
{
System.out.println(i);
}
}

public static void main(String args[])


{
Client client = new Client("127.0.0.1", 5000);
}
}

Server Programming
Establish a Socket Connection
To write a server application two sockets are needed.

 A ServerSocket which waits for the client requests (when a client makes a new Socket())
 A plain old Socket socket to use for communication with the client.
Communication
getOutputStream() method is used to send the output through the socket.
Close the Connection
After finishing, it is important to close the connection by closing the socket as well as input/output streams.
import java.net.*;
import java.io.*;

public class Server


{
//initialize socket and input stream
private Socket socket = null;
private ServerSocket server = null;
private DataInputStream in = null;

// constructor with port


public Server(int port)
{
// starts server and waits for a connection
try
{
server = new ServerSocket(port);
System.out.println("Server started");

System.out.println("Waiting for a client ...");

socket = server.accept();
System.out.println("Client accepted");

// takes input from the client socket


in = new DataInputStream(
new BufferedInputStream(socket.getInputStream()));

String line = "";

// reads message from client until "Over" is sent


while (!line.equals("Over"))
{
try
{
line = in.readUTF();
System.out.println(line);

}
catch(IOException i)
{
System.out.println(i);
}
}
System.out.println("Closing connection");

// close connection
socket.close();
in.close();
}
catch(IOException i)
{
System.out.println(i);
}
}

public static void main(String args[])


{
Server server = new Server(5000);
}
}
Important Points
 Server application makes a ServerSocket on a specific port which is 5000. This starts our Server listening for client requests
coming in for port 5000.
 Then Server makes a new Socket to communicate with the client.
socket = server.accept()

 The accept() method blocks(just sits there) until a client connects to the server.
 Then we take input from the socket using getInputStream() method. Our Server keeps receiving messages until the Client
sends “Over”.
 After we’re done we close the connection by closing the socket and the input stream.
 To run the Client and Server application on your machine, compile both of them. Then first run the server application and then
run the Client application.

You might also like