我的需求是这样的,就是我先从一个服务器(阅读器)上读取数据,然后把这个数据发送到我自己写服务器端上,然后客户端连接我自己服务器把数据去出来?这个,我已经把数据读取出来了,不知道怎样把数据发送到我自己写的服务器端 public String getData() throws IOException{

String str = null;
System.out.println("socket1:"+socket1);
if(socket1.getOutputStream().toString().length()>0){
BufferedReader bReader = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
while(!(str = bReader.readLine()).equals(null)){
     sBuffer.append(str);
    }

}

return sBuffer.toString();
}
这是我写的一个把数据读到自己写的服务器端的一段代码,但是那个socket为空?我有给socket传值,希望会这个的帮帮忙?谢谢!!!!!!!!!!!!!

解决方案 »

  1.   

    你能用图描述一下吗?是有一个中间的服务端吗就是
    服务---服务(阅读)---客户???
    你插根管道不就和了吗?
    在服务端搞个
    ServerSocket ss = new ServerSocket(7777);//port号InputStream is = null;
    OutputStream os = null;
    is = ss.getInputStream();
    os = ss.getOutputStream();在客户端直接一连
    Socket s = new Socket("127.0.0.1",7777);//port号InputStream is = null;
    OutputStream os = null;
    is = ss.getInputStream();
    os = ss.getOutputStream();
    通过管道就OK了
      

  2.   

    不好意思写错了你能用图描述一下吗?是有一个中间的服务端吗就是
    服务---服务(阅读)---客户???
    你插根管道不就和了吗?
    在服务端搞个
    ServerSocket ss = new ServerSocket(7777);//port号
    Socket s = null;
    InputStream is = null;
    OutputStream os = null;
    is = s.getInputStream();
    os = s.getOutputStream();在客户端直接一连
    Socket s = new Socket("127.0.0.1",7777);//port号InputStream is = null;
    OutputStream os = null;
    is = s.getInputStream();
    os = s.getOutputStream();
    通过管道就OK
      

  3.   


    ServerSocket ss = new ServerSocket(7777);//port号
    Socket s = ss.accept();
      

  4.   

    public class DataManager extends Thread {
    Socket socket1;
    InputStream is;
    OutputStream os;
    String readerString;
    int rssirecord;
    int tagNo;
    int j;
    boolean dirYes;
    StringBuffer sBuffer; public DataManager() {
    super();
    try {
    socket1 = new Socket("192.168.1.127",4000);
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } /*public DataManager(Socket socket) {
    super();
    this.socket1 = socket;

    }*/ /**
     * 
     * @param writer
     */ public void writerData(String writer) {
    writer = (char) 58 + writer + (char) 13 + (char) 10;
    try {
    byte[] mybytes = writer.getBytes("ASCII");
    os = socket1.getOutputStream();
    os.write(mybytes, 0, mybytes.length);
    os.flush(); } catch (Exception e) {
    System.out.println("编码转化异常");
    System.out.println("流读取出错");
    e.printStackTrace();
    }
    } /*
     * 
     * 读取标签中的信息
     */
    public void ReaderData() { int rssivalue;
    if (readerString.contains("$")) {
    String tagNo = readerString.substring(0, 18);
      byte[] bs=SymmetricCipherWithPassword.enCipherContent(tagNo, SymmetricCipherWithPassword.createPassword("11"));   
    System.out.println(bs);
    rssivalue = Integer.parseInt(readerString.substring(16, 18));
    if ((100 - rssivalue) > rssirecord) {
    rssirecord = 100 - rssivalue;
    }
    } else {
    if (readerString.contains("STAT")) {
    rssivalue = Integer.parseInt(readerString.substring(7, 9)); if (((100 - rssivalue) > rssirecord)) {
    rssirecord = 100 - rssivalue; }
    }
    } } public void run() {
    //InputStream is;
    System.out.println("进入run");
    byte data;
    System.out.println(readerString);
    while (true) {
    try {
    //System.out.println("run  socket1"+socket1);
    if(socket1.getOutputStream().toString().length()>0){
    System.out.println(socket1);
    is = socket1.getInputStream();
    data = (byte) is.read();

    readerString += (char)data;

    //

    if (data == 10) {
    ReaderData();
    if (dirYes == true) {// 显示方式
    if (readerString.length() > 10) {
    if (readerString.substring(0, 6) != ":OK\r\n$") {
    System.out.println(readerString);
    /*if (readerString.substring(0, 1) == "$") {
    if (readerString.substring(16, 17) == "1"
    || readerString.substring(16, 17) == "2"
    || readerString.substring(16, 17) == "4") {

    }
    System.out.println(readerString);
    }*/ }
    } else {
    System.out.println(readerString);
    }
    }
    readerString = "";
    }
    }
    } catch (IOException e) {
    System.out.println("数据读取出问题");
    e.printStackTrace();
    } }
    }
       public  void Connect()
           {
    try {
    socket1 = new Socket("192.168.1.127", 4000);
    DataManager data = new DataManager();
    System.out.println("连接上");
    data.setDaemon(true);
    Thread thread = new Thread(data);
    thread.start();
    RFIDServert  servert = new  RFIDServert();
    Thread thread1 = new Thread(servert);
    thread1.start();
    data.writerData("START");
    } catch (Exception e) {
    System.out.println("连接异常,连接出错");
    e.printStackTrace();
    }
    }
    public String getData() throws IOException{

    String str = null;
    System.out.println("socket1:"+socket1);
    if(socket1.getOutputStream().toString().length()>0){
    BufferedReader bReader = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
    while(!(str = bReader.readLine()).equals(null)){
         sBuffer.append(str);
        }

    }

    return sBuffer.toString();
    }

      

  5.   

    这个是读取数据的类,和socket,