receiver.java

来自「经典的传教士过河问题的java swt实现」· Java 代码 · 共 52 行

JAVA
52
字号
package client;
import java.net.*;
import java.util.*;
import java.net.*;
import java.io.*;
import fishinfo.FishInfo;

public class Receiver extends Thread{

       private DatagramPacket packet;
       private DatagramSocket socket;
       byte[] recvBuf = new byte[500];
       FishInfo  fishinfo;
       FishPanel  fishpanel;
       boolean running = true;

       public Receiver(FishPanel  fishpanel){
       super();

       try{
       socket = new DatagramSocket(5001);
       }catch(SocketException e)
       {e.printStackTrace();}

       this.fishpanel = fishpanel;

       start();
       }
       public void run(){
       while(running)
       {
       try{
       //创建udp包以接受数据。

       packet = new DatagramPacket(recvBuf,recvBuf.length);
        socket.receive(packet);
        ByteArrayInputStream byteStream = new
                           ByteArrayInputStream(recvBuf);
        ObjectInputStream is = new ObjectInputStream(new
                           BufferedInputStream(byteStream));
        Object o = is.readObject();
        fishinfo = (FishInfo)o;
        fishpanel.addFish(fishinfo); //将接收到的'游鱼'加入面板中
       is.close();
       //调用面板类,根据收到的消息,添加鱼
       }
         catch(Throwable t) {
            t.printStackTrace();
       }
       }
       }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?