According to TCP/IP protocol, the network chat via socket is divided into server side and client, which is the reference program.
Server-side programs:
Package Com.michael.contact;import Java.io.bufferedreader;import Java.io.ioexception;import java.io.InputStream; Import Java.io.inputstreamreader;import java.io.outputstream;import java.net.serversocket;import java.net.Socket; public class Server {public static void main (string args[]) throws IOException {string reces = Null;int len; Socket socket = Null;outputstream OutputStream = Null;inputstream InputStream = null;byte[] Rece = new Byte[1000];try {Ser Versocket ServerSocket = new ServerSocket (8888); The socket for the server, Port 8888while (true) {socket = serversocket.accept (); inputstream = Socket.getinputstream ();// Get input Stream outputstream = Socket.getoutputstream ();//Get output stream len = Inputstream.read (rece);//Accept Client message if (len! = 0) reces = new Strin G (rece, 0, Len); System.out.println (reces); BufferedReader bufferreader = new BufferedReader (new InputStreamReader (system.in)); Outputstream.write ("Server ...." + Bufferreader.readline ()). GetBytes ());//Return to the client Welcome message}} catch (Exception e) {e.printstacktrace ();} finally {inputsTream.close (); Outputstream.close (); Socket.close ();//Remember to close these inputs, output streams, and sockets}}}
Client program:
Package Com.michael.contact;import Java.io.BufferedReader; Import java.io.IOException; Import Java.io.InputStream; Import Java.io.InputStreamReader; Import Java.io.OutputStream; Import java.net.InetAddress; Import Java.net.Socket; public class Client {public static void main (string[] args) throws IOException {String serveripaddress = " 127.0.0.1 ";//each other's IP string words =" Hello ";//The other's words string temp = null; byte[] Serversay = new byte[1000];//read <1kb inputstreamreader read = null; int len = 0; Socket s = null; OutputStream outputstream = null; InputStream inputstream = null; Get the IP System.out.println you gave him ("Please enter each other's IP (default to yourself):"); Read = new InputStreamReader (system.in); try {temp = new BufferedReader (read). ReadLine (); if (!temp.equals ("")) serveripaddress = temp; } catch (IOException E1) {} Get you each of his message System.out.println ("Please enter what you want to say to him (her)----Enter quit!!:"); Read = new InputStreamReader (system.in); while (true) {try {temp = "Hello"; temp = new BufferedReader (read). ReadLine (); words = temp; if (Words.equals ("Quit")) break; temp = "Client ..." + words; Initiating communication s = new socket (Inetaddress.getbyname (serveripaddress), 8888);//Socket IP address and port number out Putstream = S.getoutputstream (); InputStream = S.getinputstream (); Outputstream.write (Temp.getbytes ("GBK"));//Send message to Server Len = Inputstream.read (Serversay);//Accept Server message System.out.println (New String (Serversay, 0, Len));//Client console displays the information returned by the server} catch (Exception e) { } finally {inputstream.close (); Outputstream.close (); S.close ();//Remember to close these inputs, output streams and sockets}}//end While}}
Java Socket Emulation Chat Program