0

我正在使用 TCP 套接字连接。服务器在一个对象中发送数据,我需要接收和读取它。服务器像这样发送数据

public class SymbolData
{
public string Symbol { get; set; }
public double AskPrice { get; set; }
public double BidPrice { get; set; }
public double Open { get; set; }
public double High { get; set; }
public double Low { get; set; }
public double Close { get; set; }
public double PerChange { get; set; }
public double NetChange { get; set; }
public int Volume { get; set; }
}

我的代码如下。我不知道我的流程是否正确。

public class Client implements Runnable, java.io.Serializable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        try {
            Socket s = new Socket("172.16.x.xx",xxx);

            //outgoing stream redirect to socket
            BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));              
            InputStream is = new DataInputStream(s.getInputStream());
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();

            int nRead;
            byte[] data = new byte[1024];
            while ((nRead = is.read(data, 0, data.length)) != -1) {
              buffer.write(data, 0, nRead);
            }

            try {
                deserialize(data);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            buffer.flush();

           InputStreamReader(s.getInputStream()));
           s.close();


    } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
    }


    }

}

// 反序列化字节

public static Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
    ByteArrayInputStream b = new ByteArrayInputStream(bytes);
    ObjectInputStream o = new ObjectInputStream(b);
    return o.readObject();
}

请帮忙

4

0 回答 0