BroadcastUtil.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package com.welampiot.utils;
  2. import com.welampiot.configuration.BroadcastConfig;
  3. import com.welampiot.configuration.ScreenConfig;
  4. import org.apache.http.HttpEntity;
  5. import org.apache.http.HttpResponse;
  6. import org.apache.http.client.HttpClient;
  7. import org.apache.http.client.config.RequestConfig;
  8. import org.apache.http.client.methods.HttpPost;
  9. import org.apache.http.entity.mime.MultipartEntityBuilder;
  10. import org.apache.http.impl.client.HttpClients;
  11. import org.apache.http.util.EntityUtils;
  12. import java.io.IOException;
  13. import java.io.InputStream;
  14. import java.io.OutputStream;
  15. import java.net.ConnectException;
  16. import java.net.Socket;
  17. import java.util.Map;
  18. import java.util.Set;
  19. public class BroadcastUtil {
  20. /**
  21. * 小播鼠音柱发送指令
  22. * @param msg 指令信息
  23. * @param timeout 指令超时时间
  24. * @return 指令返回信息
  25. */
  26. public static String sendBroadcastXiaoBoshu(String msg,int timeout){
  27. try {
  28. //创建客户端的Socket对象
  29. Socket socket = new Socket(BroadcastConfig.xiaoBoShuHost, BroadcastConfig.xiaoBoShuPort);
  30. socket.setSoTimeout(timeout);
  31. //获取输出流,写数据
  32. OutputStream outputStream = socket.getOutputStream();
  33. outputStream.write(msg.getBytes());
  34. //接收服务器的反馈
  35. InputStream inputStream = socket.getInputStream();
  36. byte[] bys = new byte[1024];
  37. int len = inputStream.read(bys);
  38. String s = new String(bys, 0, len);
  39. //释放资源
  40. socket.close();
  41. return s;
  42. }
  43. catch (ConnectException e4) {
  44. }
  45. catch (Exception e5) {
  46. }
  47. return "";
  48. }
  49. /**
  50. * 世邦音柱发送指令
  51. * @param msg 指令信息
  52. * @param timeout 指令超时时间 毫秒
  53. * @return 指令返回信息
  54. */
  55. public static String sendBroadcastShiBang(String url,Map msg, int timeout){
  56. HttpClient httpClient = HttpClients.createDefault();
  57. HttpPost httpPost = new HttpPost(url);
  58. RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).setSocketTimeout(timeout).build();
  59. httpPost.setConfig(requestConfig);
  60. // 创建一个multipart实体构建器
  61. MultipartEntityBuilder builder = MultipartEntityBuilder.create();
  62. // 添加表单字段
  63. Set set = msg.keySet();
  64. for (Object o :set) {
  65. Object o1 = msg.get(o);
  66. builder.addTextBody((String) o, (String) o1);
  67. }
  68. // 添加文件字段
  69. // File file = new File("path/to/file.txt");
  70. // FileBody fileBody = new FileBody(file);
  71. // builder.addPart("file", fileBody);
  72. // 构建请求实体
  73. HttpEntity httpEntity = builder.build();
  74. httpPost.setEntity(httpEntity);
  75. try {
  76. // 发送请求
  77. HttpResponse response = httpClient.execute(httpPost);
  78. // 处理响应
  79. HttpEntity entity = response.getEntity();
  80. // 使用EntityUtils工具类将HttpEntity转换为字符串
  81. return EntityUtils.toString(entity);
  82. } catch (IOException e) {
  83. // e.printStackTrace();
  84. }
  85. return "";
  86. }
  87. /**
  88. * 音柱tcp指令
  89. * @param msg 指令信息
  90. * @param timeout 指令超时时间
  91. * @return 指令返回信息
  92. */
  93. public static String sendBroadcastByTcp(String msg,int timeout){
  94. try {
  95. //创建客户端的Socket对象
  96. Socket socket = new Socket(BroadcastConfig.broadcastTcpHost, BroadcastConfig.broadcastTcpPort);
  97. socket.setSoTimeout(timeout);
  98. //获取输出流,写数据
  99. OutputStream outputStream = socket.getOutputStream();
  100. outputStream.write(msg.getBytes());
  101. //接收服务器的反馈
  102. InputStream inputStream = socket.getInputStream();
  103. byte[] bys = new byte[1024];
  104. int len = inputStream.read(bys);
  105. String s = new String(bys, 0, len);
  106. //释放资源
  107. socket.close();
  108. return s;
  109. }
  110. catch (ConnectException e4) {
  111. }
  112. catch (Exception e5) {
  113. }
  114. return "";
  115. }
  116. }