mirror of
https://github.com/FatttSnake/ClassroomInteraction.git
synced 2026-04-06 03: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