java client

轩辕季同
2023-12-01

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import com.ConstString.ConstChar;

public class client {
	Socket socket;
	DataInputStream in;
	DataOutputStream out;
	 
	
	public void connect() {
		
		 try {
			socket = new Socket(ReadProper.getIp(), ReadProper.port);
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  
	}
	 
	// 发送参数
	public void SendMessage(byte[] r) {
	   try {
	     out = new DataOutputStream(socket.getOutputStream());
	 
	    // 请求服务器端
	    out.write(r);
	    out.flush();
	   } catch (UnknownHostException e) {
	    e.printStackTrace();
	   } catch (IOException e) {
	    e.printStackTrace();
	   }
	}
	// 接受数据
	public String getMessage() {
		byte wel[] = new byte[50];
		try {
	    if(socket.getInputStream()!=null)
	    {
	    in = new DataInputStream(socket.getInputStream());
	    // 定义存放接受的数据的字符数组
	    byte result[] = new byte[RESULTLENGTH];
	    // 接受数据
	    in.read(result);
	    // 分割各个返回的数据
	   
	    System.arraycopy(result, 0, wel, 0, 32);
	   
	    // 测试接收的结果
	    System.out.println("返回结果是:" + new String(wel));
	    }
	   
	   } catch (IOException e) {
	    e.printStackTrace();
	   }
	   return new String(wel);
	}
	
	public void close()
	{
		try {
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	// 用于测试的主函数
	public static void main(String arg[]) {
	   client a = new client();
	    
	   a.connect();
	   a.SendMessage(ConstChar.r9);
	   a.getMessage();
	   a.SendMessage(ConstChar.r11);
	   a.getMessage();
	 //  a.SendMessage(ConstChar.r9);
	 //  a.getMessage();
	   a.close();
	}
}

做智能家具的web页面需要用到socket和板子通信,因此写了一个client类用来通信。

但是还是有问题,这里每一次发送获取命令都是调用这个类,因此需要不断的连接,断开。实时性不好。不知道有什么好的方法


 类似资料:

相关阅读

相关文章

相关问答