项目地址:https://github.com/gongxianshengjiadexiaohuihui/PKI
关于什么是socket通信,我会写一篇博客去叙述
这次我们主要实现client和server通过socket进行通信
server代码
package com.ggp.server;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @ClassName Server
* @Description TODO
* @Author Mr.G
* @Date 2018/11/29 9:43
* @Version 1.0
*/
public class Server extends Thread {
private Socket socket;
private ServerSocket serverSocket;
public Server(int port)throws Exception{
serverSocket = new ServerSocket(port);
}
@Override
public void run() {
while (this.isAlive()) {
try {
socket = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream());
String data = reader.readLine();
writer.println(data);
writer.close();
socket.close();
} catch (IOException e) {
}
}
}
public static void main(String[] args) throws Exception{
new Server(28888).start();
}
}
开辟一条线程初始化serversocket,并监听28888端口
socket = serverSocket.accept();
这句代码是阻塞的,只有监听到客户端发来的消息,才会执行下面的代码
功能:
接受客户端发来的信息,并把信息返回给客户端
client代码
package com.ggp.client;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* @ClassName Client
* @Description TODO
* @Author Mr.G
* @Date 2018/11/29 9:55
* @Version 1.0
*/
public class Client {
public static void main(String[] args) throws Exception{
Socket socket = new Socket("127.0.0.1", 28888);
PrintWriter writer = new PrintWriter(socket.getOutputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer.println("hello");
writer.flush();
System.out.println(reader.readLine());
socket.close();
}
}
功能:
初始化一个socket ,配置 要发送服务器的地址和端口号
发送内容,打印服务器返回的内容
结果