Server-side
Packagecom. Pong.tcpip;ImportJava.io.BufferedReader;Importjava.io.IOException;ImportJava.io.InputStream;ImportJava.io.InputStreamReader;ImportJava.io.OutputStream;ImportJava.net.ServerSocket;ImportJava.net.Socket; Public classTCPServer {//start the server-side program first Public Static voidMain (string[] args)throwsIOException {serversocket serversocket=NewServerSocket (8080); Socket Socket=serversocket.accept ();//Blocking Wait MessagesInputStream inputstream=Socket.getinputstream (); OutputStream OutputStream=Socket.getoutputstream ();//outputstream.write ("Welcome!" ". GetBytes (), 0," Welcome! ". GetBytes (). length);Outputstream.write ("welcome!". GetBytes ()); /*byte[] Buf=new byte[1024]; int Len=inputstream.read (BUF);//System.out.println (New String (buf, 0, Len)); Inputstream.close ();*/BufferedReader BufferedReader=NewBufferedReader (NewInputStreamReader (InputStream)); System.out.println (Bufferedreader.readline ()); Bufferedreader.close (); Outputstream.close (); Socket.close (); Serversocket.close (); }}
Packagecom. Pong.tcpip;ImportJava.io.BufferedReader;ImportJava.io.DataOutputStream;Importjava.io.IOException;ImportJava.io.InputStream;ImportJava.io.InputStreamReader;ImportJava.io.OutputStream;ImportJava.net.ServerSocket;ImportJava.net.Socket; Public classServicerImplementsRunnable {socket socket; PublicServicer (socket socket) {Super(); This. Socket =socket; } @Override Public voidrun () {Try{InputStream InputStream=Socket.getinputstream (); OutputStream OutputStream=Socket.getoutputstream (); BufferedReader BufferedReader=NewBufferedReader (NewInputStreamReader (InputStream)); DataOutputStream DataOutputStream=NewDataOutputStream (OutputStream); while(true) {String Strword=bufferedreader.readline ();//System.out.println (strword+ ":" +strword.length ()); if("Quit". Equalsignorecase (Strword)) { Break; } String Strecho=(NewStringBuilder (Strword). reverse ()). ToString (); //dataoutputstream.writebytes (strword+ "---->" +strecho+ "\ r \ n"); //system.getproperty ("Line.separator") is a cross-platform line break. window is \r\n,unix \ nDataoutputstream.writebytes (strword+ "---->" +strecho+system.getproperty ("Line.separator")); } bufferedreader.close (); Bufferedreader.close (); Socket.close (); } Catch(IOException e) {//TODO auto-generated Catch blockE.printstacktrace (); } } Public Static voidmain (String [] args) {Try{ServerSocket ss=NewServerSocket (8080); while(true) {Socket s=ss.accept (); NewThread (NewServicer (s)). Start (); } //ss.close ();}Catch(Exception e) {e.printstacktrace ();} }}
Client
Packagecom. Pong.tcpip;ImportJava.io.BufferedReader;ImportJava.io.DataOutputStream;ImportJava.io.InputStream;ImportJava.io.InputStreamReader;ImportJava.io.OutputStream;Importjava.net.InetAddress;ImportJava.net.Socket;//After you start the client program Public classTcpClient {//start main simultaneous come in two parameters: IP and port number Public Static voidmain (String [] args) {Try { //Socket s=new Socket (inetaddress.getbyname ("192.168.0.213"), 8001); if(Args.length < 2) {System.out.println ("Usage:java TcpClient ServerIP ServerPort"); return; } //Creating SocketsSocket s=NewSocket (Inetaddress.getbyname (Args[0]), Integer.parseint (args[1])); InputStream IPs=S.getinputstream (); OutputStream Ops=S.getoutputstream (); BufferedReader Brkey=NewBufferedReader (NewInputStreamReader (system.in));//Keyboard InputDataOutputStream dos =NewDataOutputStream (OPS); BufferedReader brnet=NewBufferedReader (NewInputStreamReader (IPs)); while(true) {String Strword=Brkey.readline (); Dos.writebytes (Strword+ System.getproperty ("Line.separator")); if(Strword.equalsignorecase ("Quit")) Break; ElseSystem.out.println (Brnet.readline ()); } dos.close (); Brnet.close (); Brkey.close (); S.close (); }Catch(Exception e) {e.printstacktrace ();} }}/*send and receive are all based on sockets as information carriers*/
JAVA TCP Socket