服务端server:
import org.json.simple.JSONObject;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
System.out.println("Socketf服务器开始运行。。");
ServerSocket serverSocket = new ServerSocket(9999);
while (true){
Socket socket =serverSocket.accept();
new Thread(new Server_listen(socket)).start();
new Thread(new Server_send(socket)).start();
}
}
}
class Server_listen implements Runnable{
private Socket socket;
Server_listen(Socket socket){
this.socket = socket;
}
@Override
public void run() {
try {
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while(true){
System.out.println("收到客户端得消息:"+ois.readObject());
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class Server_send implements Runnable{
private Socket socket;
Server_send(Socket socket){
this.socket = socket;
}
@Override
public void run() {
try {
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
Scanner scanner = new Scanner(System.in);
while(true){
// System.out.println("请输入要发送得内容:");
String string = scanner.nextLine();
JSONObject object = new JSONObject();
// object.put("type","chat");
object.put("msg",string);
oos.writeObject(object);
oos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端client:
import org.json.simple.JSONObject;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;
public class Main {
private static Socket socket;
private static boolean connection_state = false;
private static ObjectOutputStream oos;
public static void main(String[] args) throws IOException {
System.out.println("客户端运行");
connect();
if (connection_state){
oos = new ObjectOutputStream(socket.getOutputStream());
new Thread(new Client_listen(socket)).start();
new Thread(new Client_send(socket,oos)).start();
// new Thread(new Client_heart(socket,oos)).start();
}
}
private static void connect() throws IOException {
socket = new Socket("127.0.0.1",9999);
connection_state = true;
}
}
class Client_listen implements Runnable{
private Socket socket;
Client_listen(Socket socket){
this.socket = socket;
}
@Override
public void run() {
try {
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while (true){
System.out.println("接收到服务端消息:"+ois.readObject());
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class Client_send implements Runnable{
private Socket socket;
private ObjectOutputStream oos;
Client_send(Socket socket,ObjectOutputStream oos){
this.socket=socket;
this.oos = oos;
}
@Override
public void run() {
try {
Scanner scanner = new Scanner(System.in);
while(true){
String string = scanner.nextLine();
JSONObject object = new JSONObject();
// object.put("type","chat");
object.put("msg",string);
oos.writeObject(object);
oos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Client_heart implements Runnable{
private Socket socket;
private ObjectOutputStream oos;
Client_heart(Socket socket,ObjectOutputStream oos ){
this.socket = socket;
this.oos = oos;
}
@Override
public void run() {
try {
System.out.println("心跳包进程已启动。。。");
while(true){
Thread.sleep(5000);
JSONObject object = new JSONObject();
object.put("type","heart");
object.put("msg","心跳包");
oos.writeObject(object);
oos.flush();
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}