Socket programming 1
getByName import java.net.*; public class GetHostName { public static void main (String args[]) { String host = " try { InetAddress address = InetAddress.getByName(host); System.out.println(address); } catch (UnknownHostException e) { System.out.println("Could not find "+ host); }
getByName import java.net.*; public class GetNameByAddress { public static void main (String args[]) { try { InetAddress address = InetAddress.getByName(" "); System.out.println(address); } catch (UnknownHostException e) { System.out.println("Could not find "); }
LocalMachineAddress import java.net.*; public class LocalMachineAddress { public static void main (String args[]) { try { InetAddress address = InetAddress.getLocalHost(); System.out.println(address); } catch (UnknownHostException e) { System.out.println("Could not find this computer's address."); }
Local machine name import java.net.*; public class LocalMachineName { public static void main (String args[]) { try { InetAddress address = InetAddress.getLocalHost(); System.out.println("Local Machine Name is " + address.getHostName()); } catch (UnknownHostException e) { System.out.println("No Name for this machine."); }
Elementary TCP socket ServerSocketServerSocket() BindBind() ListenListen() AcceptAccept() Close() ReadRead() WriteWrite() Process request Blocks until connections from client TCP Server TCP Client Connect() Write(Write() ReadRead() Close() SocketSocket() Connection establishment (TCP 3-way Handshake) Data (request) Data (reply) Well-known port Socket functions for elementary TCP client-server
ServerSocket ServerSocket(int port) Creates a server socket, bound to the specifie port. ServerSocket Back
Listen accept() method of ServerSocket instance object returns Socket instance object. Accept method listens for a connection to be made to this socket and accepts it.acceptServerSocketSocket Back
Read from a socket DataInputStream – A data input stream lets an application read primitive Java data types from an underlying input stream in a machine- independent way. – An application uses a data output stream to write data that can later be read by a data input stream. – readUTF() method return String data typereadUTFString – It reads from the stream in a representation of a Unicode character string encoded in Java modified UTF-8 format; this string of characters is then returned as a String. The details of the modified UTF-8 representation are exactly the same as for the readUTF method of DataInput.
getInputStream() method of Socket class getInputStream() method of class socket Returns an input stream type (InputStream) for this socket.getInputStreamInputStream If this socket has an associated channel then the resulting input stream delegates all of its operations to the channel. Back
Write to a socket DataOutputStream class – A data output stream lets an application write primitive Java data types to an output stream in a portable way. – An application can then use a data input stream to read the data back in. – writeUTF() method writes a string to the underlying output stream using Java modified UTF-8 encoding in a machine-independent manner.
getOutputStream() method of Socket class getOutputStream() method of Socket class returns an output stream for this socket. If this socket has an associated channel then the resulting output stream delegates all of its operations to the channel. Back
Socket Socket(InetAddress address, int port) Creates a stream socket and connects it to the specified port number at the specified IP address. SocketInetAddress Back
TCPServer import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverPort = 7896; // the server port ServerSocket listenSocket = new ServerSocket(serverPort); while(true) { Socket clientSocket = listenSocket.accept(); Connection c = new Connection(clientSocket); } } catch(IOException e) {System.out.println("Listen socket:"+e.getMessage());} } class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientSocket; public Connection (Socket aClientSocket) { try { clientSocket = aClientSocket; in = new DataInputStream( clientSocket.getInputStream()); out =new DataOutputStream( clientSocket.getOutputStream()); this.start(); } catch(IOException e) {System.out.println("Connection:"+e.getMessage());} } public void run(){ try { // an echo server String data = in.readUTF(); // read a line of data from the stream out.writeUTF("Thats what i received from you :"+ data); }catch (EOFException e){System.out.println("EOF:"+e.getMessage()); } catch(IOException e) {System.out.println("readline:"+e.getMessage()); } finally{ try {clientSocket.close();}catch (IOException e){/*close failed*/}} }
TCPClient import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { // arguments supply message and hostname Socket s = null; try{ int serverPort = 7896; s = new Socket(" ", serverPort); DataInputStream in = new DataInputStream( s.getInputStream()); DataOutputStream out =new DataOutputStream( s.getOutputStream()); out.writeUTF(" "); // UTF is a string encoding see Sn. 4.4 String data = in.readUTF(); // read a line of data from the stream System.out.println("Received: "+ data) ; }catch (UnknownHostException e){System.out.println("Socket:"+e.getMessage()); }catch (EOFException e){System.out.println("EOF:"+e.getMessage()); }catch (IOException e){System.out.println("readline:"+e.getMessage()); }finally {if(s!=null) try {s.close();}catch (IOException e){System.out.println("close:"+e.getMessage());} }
References texamples/index.html texamples/index.html Java Docummentation. Sample/Sockets/Text%20Book/ Sample/Sockets/Text%20Book/