我想測試我的程序,該程序在發件人和接收器類之間發送DatagramSocket
數據。我應該如何去測試這些類之間的數據發送?測試DatagramSockets的傳輸
這裏是我的發送方碼...
public class CheckIn {
private String patientName;
private String pTime;
private int portnumber;
public CheckIn(String pname, String time, int port){
patientName = pname;
pTime = time;
portnumber = port;
process();
}
public void process() {
try {
DatagramSocket is = new DatagramSocket(5800,InetAddress.getLocalHost());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
String n = "Your "+"\n" + pTime + "\n" + patientName + " has arrived";
oos.writeObject(n);
byte[] buffer = baos.toByteArray();
baos.close();
oos.close();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length,InetAddress.getLocalHost(), portnumber);
is.send(packet);
System.out.println("patient name " + patientName);
System.out.println("Check In");
}
catch (Exception e){
System.out.println("ERROR Cashier: " + e.getMessage());
e.printStackTrace();
}
}
}
這是我Receiver類...
class Reciever2 extends Thread {
public Reciever2(){
this.start(); //starts the thread
}
public void run(){
try {
DatagramSocket socket = new DatagramSocket(5700,InetAddress.getLocalHost());
System.out.println("Recieving"); //prints when receiving a message
while (true){
byte[] data = new byte[1024]; //array of bytes
DatagramPacket packet = new DatagramPacket(data,data.length);
socket.receive(packet); //receives the packet
ByteArrayInputStream bais = new ByteArrayInputStream(packet.getData());
ObjectInputStream ois = new ObjectInputStream(bais);
String s = (String) ois.readObject(); //reading the data
bais.close(); //closes input stream
ois.close(); //closes input stream
System.out.println(s);
theText.setText(s); //displays message
}
}
catch (Exception e){
System.out.println("ERROR Cook: " + e.getMessage());
}
}
}
最簡單的方法是寫一個接收器嗎? – Erik 2012-04-16 13:47:17
@Erik - 是的,這就是我要做的,將代碼添加到CheckIn類中。然後用一個ctor參數替換神奇的'5800'端口號並添加一個接收端口號。然後讓它們中的兩個具有互補端口,然後將它們傳遞給幾對線程,然後在一個數據報中啓動,並在它循環時觀察。 – 2012-04-16 13:54:57
嗯。只需要兩個線程 - 每個線程都會等待數據報,並在收到時再次發送出去。 – 2012-04-16 13:57:19