mirror of
https://github.com/FatttSnake/ClassroomInteraction.git
synced 2026-04-06 06:31:26 +08:00
Init net.gzw
This commit is contained in:
@@ -1,7 +0,0 @@
|
|||||||
package com.cfive.classroom.library.net;
|
|
||||||
|
|
||||||
public class Test {
|
|
||||||
public static void run() {
|
|
||||||
System.out.println("Run net test");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class MessageObject implements Serializable {
|
||||||
|
private String stuNo;
|
||||||
|
private String stuName;
|
||||||
|
private String code;
|
||||||
|
private String count;
|
||||||
|
private String message;
|
||||||
|
public MessageObject(){}
|
||||||
|
|
||||||
|
public MessageObject(String stuNo, String name, String code, String message,String count) {
|
||||||
|
this.stuNo = stuNo;
|
||||||
|
this.stuName = name;
|
||||||
|
this.code = code;
|
||||||
|
this.message = message;
|
||||||
|
this.count = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStuNo() {
|
||||||
|
return stuNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStuNo(String stuNo) {
|
||||||
|
this.stuNo = stuNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStuName() {
|
||||||
|
return stuName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStuName(String stuName) {
|
||||||
|
this.stuName = stuName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCount() {
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCount(String count) {
|
||||||
|
this.count = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMessage() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMessage(String message) {
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
public interface ReceiveListener {
|
||||||
|
void onReceive(MessageObject messageObject);
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class RecieveThread extends Thread {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
private Socket socket;
|
||||||
|
private ReceiveListener receiveListener;
|
||||||
|
private MessageObject messageObject;
|
||||||
|
public RecieveThread(Socket socket) {
|
||||||
|
this.socket = socket;
|
||||||
|
}
|
||||||
|
public void setOnReceiveListener(ReceiveListener receiveListener) {
|
||||||
|
this.receiveListener = receiveListener;
|
||||||
|
}
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
// 接收对方输入的内容
|
||||||
|
InputStream inputStream = socket.getInputStream();
|
||||||
|
ObjectInputStream objectInputStreamInputStream = new ObjectInputStream(inputStream);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
messageObject = (MessageObject) objectInputStreamInputStream.readObject();
|
||||||
|
// LOGGER.info(messageObject);
|
||||||
|
if (receiveListener != null) {
|
||||||
|
receiveListener.onReceive(messageObject);
|
||||||
|
}
|
||||||
|
// System.out.println(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.ObjectOutputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class SendThread extends Thread{
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
private Socket socket;
|
||||||
|
private MessageObject messageObject;
|
||||||
|
public SendThread(Socket socket,MessageObject messageObject) {
|
||||||
|
this.socket = socket;
|
||||||
|
this.messageObject = messageObject;
|
||||||
|
}
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
|
||||||
|
// 获取输入的内容
|
||||||
|
OutputStream outputStream = socket.getOutputStream();
|
||||||
|
ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
|
||||||
|
objectOutputStream.writeObject(messageObject);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
public class StudentNet {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
private Socket socket;
|
||||||
|
private MessageObject messageObject = new MessageObject();
|
||||||
|
|
||||||
|
/*
|
||||||
|
public StudentNet(String host, int port, ReceiveListener receiveListener) throws IOException {
|
||||||
|
socketConnect(host, port);
|
||||||
|
receiveMessageThread(receiveListener);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
public StudentNet(){}
|
||||||
|
|
||||||
|
public void socketConnect(String host, int port) throws UnknownHostException, IOException
|
||||||
|
{
|
||||||
|
socket = new Socket(host, port);
|
||||||
|
}
|
||||||
|
|
||||||
|
//发送
|
||||||
|
public void sendMessageThread(MessageObject messageObject) {
|
||||||
|
SendThread sendThread = new SendThread(socket, messageObject);
|
||||||
|
sendThread.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
//接受信息
|
||||||
|
public void receiveMessageThread(ReceiveListener receiveListener)
|
||||||
|
{
|
||||||
|
RecieveThread recieveThread = new RecieveThread(socket);
|
||||||
|
recieveThread.setOnReceiveListener(receiveListener);
|
||||||
|
recieveThread.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class StudentSendThread extends Thread {
|
||||||
|
private Socket socket;
|
||||||
|
private String stuNo;
|
||||||
|
private String name;
|
||||||
|
public StudentSendThread(Socket socket,String stuNo,String name) {
|
||||||
|
this.socket = socket;
|
||||||
|
this.stuNo=stuNo;
|
||||||
|
this.name=name;
|
||||||
|
}
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
|
||||||
|
// 获取输入的内容
|
||||||
|
OutputStream outputStream = socket.getOutputStream();
|
||||||
|
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
|
||||||
|
/*
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
dataOutputStream.writeUTF(stuNo+"\t"+name);
|
||||||
|
dataOutputStream.writeUTF(stuNo);
|
||||||
|
dataOutputStream.writeUTF(name);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
dataOutputStream.writeUTF(stuNo);
|
||||||
|
dataOutputStream.writeUTF(name);
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.Socket;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class TeacherNet {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
private ServerSocket serverSocket;
|
||||||
|
private Socket socket;
|
||||||
|
private MessageObject messageObject = new MessageObject();;
|
||||||
|
/*
|
||||||
|
public static void main(String[] args) {
|
||||||
|
TeacherNet teacher = new TeacherNet();
|
||||||
|
try {
|
||||||
|
teacher.socketConnect();
|
||||||
|
teacher.sendThreadStart();
|
||||||
|
// teacher.teacherReceive();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
public void socketConnect(int port) throws IOException
|
||||||
|
{// 监听端口
|
||||||
|
serverSocket = new ServerSocket(port);
|
||||||
|
socket = serverSocket.accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//发送
|
||||||
|
public void sendMessageThread(MessageObject messageObject) {
|
||||||
|
SendThread sendThread = new SendThread(socket, messageObject);
|
||||||
|
sendThread.start();
|
||||||
|
//打斷線程
|
||||||
|
sendThread.interrupt();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//接受信息
|
||||||
|
public void receiveMessageThread(ReceiveListener receiveListener)
|
||||||
|
{
|
||||||
|
RecieveThread recieveThread = new RecieveThread(socket);
|
||||||
|
recieveThread.setOnReceiveListener(receiveListener);
|
||||||
|
recieveThread.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.cfive.classroom.library.net.gzw;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.Socket;
|
||||||
|
|
||||||
|
public class TeacherRecieveThread extends Thread{
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
private Socket socket;
|
||||||
|
private String stuNo;
|
||||||
|
private String name;
|
||||||
|
public TeacherRecieveThread(Socket socket) {
|
||||||
|
this.socket = socket;
|
||||||
|
|
||||||
|
}
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
// 接收对方输入的内容
|
||||||
|
InputStream inputStream = socket.getInputStream();
|
||||||
|
DataInputStream dataInputStream = new DataInputStream(inputStream);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
stuNo = dataInputStream.readUTF();
|
||||||
|
name = dataInputStream.readUTF();
|
||||||
|
LOGGER.info(stuNo);
|
||||||
|
LOGGER.info(name);
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.cfive.classroom.library.net;
|
||||||
|
|
||||||
|
import com.cfive.classroom.library.net.gzw.MessageObject;
|
||||||
|
import com.cfive.classroom.library.net.gzw.ReceiveListener;
|
||||||
|
import com.cfive.classroom.library.net.gzw.StudentNet;
|
||||||
|
import com.cfive.classroom.library.net.gzw.TeacherNet;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class StudentTest {
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void studentListenterTest() {
|
||||||
|
StudentNet studentNet = new StudentNet();
|
||||||
|
try {
|
||||||
|
studentNet.socketConnect("localhost",8888);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
studentNet.receiveMessageThread(new ReceiveListener() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(MessageObject messageObject) {
|
||||||
|
LOGGER.info(messageObject.getCode());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void teacherListenterTes() {
|
||||||
|
TeacherNet teacherNet = new TeacherNet();
|
||||||
|
try {
|
||||||
|
teacherNet.socketConnect(8888);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageObject messageObject = new MessageObject();
|
||||||
|
messageObject.setCode("123");
|
||||||
|
teacherNet.sendMessageThread(messageObject);
|
||||||
|
while(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user