先放代码
问题出现在服务器端的计算线程
客户机的计算式格式为:+9 6//代表9+6
package homework2;
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.locks.ReentrantLock;
import java.io.IOException;
import java.net.*;
public class UDPserver {
public static void main(String args[]){
DatagramSocket aSocketin=null;
DatagramSocket aSocketout=null;
try {
aSocketin = new DatagramSocket(8080);
aSocketout = new DatagramSocket(8081);
BlockingQueue<DatagramPacket> in = new LinkedBlockingQueue<DatagramPacket>(10);
BlockingQueue<DatagramPacket> out = new LinkedBlockingQueue<DatagramPacket>(10);
ReceiveThread inrun = new ReceiveThread(in, aSocketin);
SendThread outrun = new SendThread(out, aSocketout);
new Thread(inrun).start();
CalculateThread_Recycle caculate = new CalculateThread_Recycle(in, out);
new Thread(caculate).start();
new Thread(outrun).start();
}catch (SocketException e) {
System.out.println("Socket: " + e.getMessage());
}
}
}
//接收线程
class ReceiveThread implements Runnable{
DatagramSocket aSocket=null;
byte[] buffer = new byte[1000];
DatagramPacket temp = new DatagramPacket(buffer, buffer.length);
private BlockingQueue<DatagramPacket> in;
public ReceiveThread(BlockingQueue<