This article describes the Java based on TCP protocol socket programming method, share for everyone to reference. The specific analysis is as follows:
The following is a one-to-one communication programming implementation that will continue to learn about the implementation of a server listening to multiple clients.
The main steps used here are as follows:
First step: Create a new socket object with a specific port (for example, 4800)
Step two: Construct the BufferedReader object with the system input device, which is used to receive the characters of the system keyboard input
The third step: using socket object to get output stream to construct PrintWriter
Step Fourth: Use the socket object to get the input stream to construct the corresponding BufferedReader object, which is used to receive information sent from the server side.
I understand the closed socket: first open after the closure, the socket finally closed.
The following is the code implementation of the client:
Copy Code code as follows:
Package com.fan.socket;
Import java.io.*;
Import Java.net.Socket;
public class Socketclient {
public static void Main (string[] args) throws ioexception{
try{
Socket socket=new socket ("127.0.0.1", 4800);
SYSTEM.OUT.PRINTLN ("Client start ...");
Shanben 4800 port to issue customer request
BufferedReader br=new BufferedReader (New InputStreamReader (system.in));
Constructing BufferedReader objects from System standard input devices
PrintWriter write=new PrintWriter (Socket.getoutputstream ());
The output stream is obtained from the socket object and the PrintWriter object is constructed
BufferedReader in=new BufferedReader (New InputStreamReader (Socket.getinputstream ()));
The input stream is obtained from the socket object and the corresponding BufferedReader object is constructed
String ReadLine;
Readline=br.readline (); Read a string from System standard input
while (!readline.equals ("End")) {
Stop the loop if the string read from the standard input is "end"
Write.println (ReadLine);
Output the read string from system standard input to Server2
Write.flush ();
Refreshes the output stream so that the server receives the string immediately
System.out.println ("Client:" +readline);
Print read-in string on system standard output
System.out.println ("Server:" +in.readline ());
Read a string from server and print to standard output
Readline=br.readline (); Read a string from System standard input
}//Continue cycle
Write.close (); Turn off the socket output stream
In.close (); Close the socket input stream
Socket.close (); Close socket
}catch (Exception e) {
System.out.println ("Can not listen to:" +e);//error, print error message
}
}
}
Service-Side code implementation:
Copy Code code as follows:
Package com.fan.socket;
Import java.io.*;
Import Java.net.ServerSocket;
Import Java.net.Socket;
public class Socketservice {
public static void Main (string[] args) throws ioexception{
Socketservice socketservice = new Socketservice ();
Socketservice.oneserver ();
}
public void Oneserver () {
try{
ServerSocket Server=null;
try{
Server=new ServerSocket (4800);
SYSTEM.OUT.PRINTLN ("Server Start is ok ...");
Create a ServerSocket to monitor client requests on port 4800
}catch (Exception e) {
System.out.println ("Can not be listen to:" +e);
Error, print error message
}
Socket Socket=null;
try{
Socket=server.accept ();
Use Accept () to block waiting for a customer request with a customer
When the request arrives, a socket object is generated and continues to execute
}catch (Exception e) {
System.out.println ("Error.") +E);
Error, print error message
}
String Line;
BufferedReader in=new BufferedReader (New InputStreamReader (Socket.getinputstream ()));
The input stream is obtained from the socket object and the corresponding BufferedReader object is constructed
PrintWriter writer=new PrintWriter (Socket.getoutputstream ());
The output stream is obtained from the socket object and the PrintWriter object is constructed
BufferedReader br=new BufferedReader (New InputStreamReader (system.in));
Constructing BufferedReader objects from System standard input devices
System.out.println ("Client:" +in.readline ());
Print a string read from the client on standard output
Line=br.readline ();
Read a string from standard input
while (!line.equals ("End")) {
If the string is "Bye", Stop the Loop
Writer.println (line);
Output the string to the client
Writer.flush ();
Refreshes the output stream so that the client receives the string immediately
System.out.println ("Server:" +line);
Print read-in string on system standard output
System.out.println ("Client:" +in.readline ());
Reads a string from the client and prints it to the standard output
Line=br.readline ();
Read a string from System standard input
}//Continue cycle
Writer.close (); Turn off the socket output stream
In.close (); Close the socket input stream
Socket.close (); Close socket
Server.close (); Close ServerSocket
}catch (Exception e) {//error, print error message
System.out.println ("Error.") +E);
}
}
}
I hope this article will help you with your Java programming.