An example of a Helloword-level Java Socket communication. Communication process:
Start the Server side and enter a dead loop to listen to a port for connection requests. Then run the client side, the clients make a connection request, the service side to listen to the request after the client sent back to accept the message, the connection established, start a thread to process the request, and then continue to the dead loop to listen to other requests. After the client enters the string, press ENTER to send the data to the server. The server replies to the client data after reading the data. This request has been processed and the thread that started has died. If the client receives a return data other than "OK", the connection request is sent again and the data is sent, and the server initiates a thread for the connection to respond ... The client exits until the returned data received by the client is "OK".
One of the key points in Java is the connection between the server and the client, because it is on the same PC, so set the server's address to "localhost", note that I tried to set other names, but none, this reason also asked the old driver to sue. Also note that the service side before the client run, nonsense not to say, on the code:
Client:
Press CTRL + C to copy the code
Package Webprogramingdemo;
Import java.io.IOException;
Import Java.io.InputStream;
Import Java.io.OutputStream;
Import Java.net.Socket;
Import java.net.UnknownHostException;
public class Socketdemo {
/**
* @param args
* @throws IOException
* @throws unknownhostexception
*/
public static void Main (string[] args) throws IOException {
Socket s=new socket ("192.168.2.103", 10002);
OutputStream Out=s.getoutputstream ();
Out.write ("Java". GetBytes ());
InputStream Is=s.getinputstream ();
byte buf[]=new byte[1024];
int Len=is.read (BUF);
System.out.println (New String (Buf,0,len));
S.close ();
}
}
Press CTRL + C to copy the code
Service side:
Press CTRL + C to copy the code
Package Webprogramingdemo;
Import java.io.IOException;
Import Java.io.InputStream;
Import Java.io.OutputStream;
Import Java.net.ServerSocket;
Import Java.net.Socket;
public class Serversocketdemo {
/**
* @param args
* @throws IOException
*/
public static void Main (string[] args) throws IOException {
ServerSocket ss = new ServerSocket (10002);
Socket s = ss.accept ();
String IP = s.getinetaddress (). gethostaddress ();
SYSTEM.OUT.PRINTLN (IP + "..... connected ...");
InputStream in = S.getinputstream ();
int len = 0;
byte[] buf = new byte[1024];
Len = In.read (BUF);
System.out.println (New String (buf, 0, Len));
OutputStream Os=s.getoutputstream ();
Os.write ("Received". GetBytes ());
Os.close ();
S.close ();
Ss.close ();
}
}
Press CTRL + C to copy the code
Http://www.cnblogs.com/ysw-go/p/5323357.html
The server modified code:
Package test;
Import java.io.IOException;
Import Java.io.InputStream;
Import Java.io.OutputStream;
Import Java.net.ServerSocket;
Import Java.net.Socket;
Import Java.util.Scanner;
public class Serversocketdemo {
/**
* @param args
* @throws IOException
*/
public static void Main (string[] args) throws IOException {
ServerSocket ss = new ServerSocket (10002);
Socket s = ss.accept ();
while (true)
{
String IP = s.getinetaddress (). gethostaddress ();
SYSTEM.OUT.PRINTLN (IP + "..... connected ...");
InputStream in = S.getinputstream ();
int len = 0;
byte[] buf = new byte[1024];
Len = In.read (BUF);
System.out.println (New String (buf, 0, Len));
OutputStream Os=s.getoutputstream ();
Scanner scan=new Scanner (system.in);
String S1=scan.next ();
Os.write (S1.getbytes ());
Os.write ("Received". GetBytes ());
Os.close ();
S.close ();
Ss.close ();
}
}
}
After the client code has been modified:
Package test2;
Import java.io.IOException;
Import Java.io.InputStream;
Import Java.io.OutputStream;
Import Java.net.Socket;
Import java.net.UnknownHostException;
Import Java.util.Scanner;
public class Socketdemo {
/**
* @param args
* @throws IOException
* @throws unknownhostexception
*/
public static void Main (string[] args) throws IOException {
Socket s=new socket ("localhost", 10002);
while (true)
{
OutputStream Out=s.getoutputstream ();
Scanner scan=new Scanner (system.in);
String S1=scan.next ();
Out.write (S1.getbytes ());
Out.write (S1.getbytes ());
InputStream Is=s.getinputstream ();
byte buf[]=new byte[1024];
int Len=is.read (BUF);
System.out.println (New String (Buf,0,len));
S.close ();
}
}
}
The server is turned on, then the client is turned on, and the customer must first send a message with the server, and then the server sends a message back to the client. End of one communication. The output of the client corresponds to the input of the server, and the output of the server corresponds to the client input.
Java Network Programming TCP protocol Java server and client Java socket programming