关于什么是Socket:
A socket is one end-point of a two-way communication link between two programs running on the network.
Socket是网络上运行的2个程序之间通信链接的终点。说白了就是代表一条通信链路的两端。
Socket classes are used to represent the connection between a client program and a server program.
Socket类用来代表客户端程序和服务器端程序的连接。
The java.net package provides two classes--Socket and ServerSocket--that implement the client side of the connection and the server side of the connection, respectively
Java中的java.net包提供了Socket和ServerSocket类分别实现连接的客户端和服务端。
Java中如何编写?
服务器端:
package com.dylan.socket;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;/*** 服务器** @author xusucheng* @create 2017-12-21**/
public class Server {public static final int PORT = 8858;//监听的端口号public static void main(String[] args) throws Exception {System.out.println("Server started! Listening...");ServerSocket serverSocket = new ServerSocket(PORT);Socket server = serverSocket.accept();BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));PrintWriter out = new PrintWriter(server.getOutputStream());String readLine = in.readLine();if (readLine != null) {System.out.println("Receive message from Client: " + readLine);out.println("Roger!");}out.close();in.close();server.close();serverSocket.close();}}
客户端:
package com.dylan.socket;import java.io.*;
import java.net.Socket;/*** 客户端** @author xusucheng* @create 2017-12-20**/
public class Client {public static final String HOST = "127.0.0.1";//服务器地址public static final int PORT = 8858;//服务器端口号public static void main(String[] args) throws Exception{Socket client = new Socket(HOST,PORT);//创建输入流BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));//创建输出流PrintWriter out = new PrintWriter(client.getOutputStream(),true);//向服务器程序发送信息out.println("Hello Server! This is Client! ");//接收来自服务器程序的响应String readLine=in.readLine();if(readLine!=null){System.out.println("Receive message from Server: "+readLine);}//关闭链接out.close();in.close();client.close();}
}
启动
服务器端
Server started! Listening...
Receive message from Client: Hello Server! This is Client!
客户端:
Receive message from Server: Roger!