android c# websocket

举报
风吹稻花香 发表于 2021/06/05 23:26:10 2021/06/05
【摘要】 android 发送图片,调试时,能正常收到,一旦错乱,后面全部错乱了。 websocket判断第一位数据大于128,否则,就会解析出错。   int a = (156 & 0x80); 或者解析长度为127,则只能读取127位数据,后面的数据都丢了。 出错原因估计是丢包了。 public static void startHttpClientW...

android 发送图片,调试时,能正常收到,一旦错乱,后面全部错乱了。

websocket判断第一位数据大于128,否则,就会解析出错。

  int a = (156 & 0x80);

或者解析长度为127,则只能读取127位数据,后面的数据都丢了。

出错原因估计是丢包了。


  
  1. public static void startHttpClientWebSocket() {
  2. AsyncHttpClient.getDefaultInstance().websocket("ws://192.168.27.54:" + PORT, null, new AsyncHttpClient.WebSocketConnectCallback() {
  3. @Override
  4. public void onCompleted(Exception ex, WebSocket webSocket) {
  5. Log.i(TAG, "----------------startHttpClientWebSocket------websocket---onCompleted-" + webSocket);
  6. if (ex != null) {
  7. ex.printStackTrace();
  8. return;
  9. }
  10. webSocket.setDataCallback(new DataCallback() {
  11. @Override
  12. public void onDataAvailable(DataEmitter emitter, ByteBufferList bb) {
  13. Log.d("Socket", "接收到:" + new String(bb.getAllByteArray()));
  14. }
  15. });
  16. webSocket.setClosedCallback(new CompletedCallback() {
  17. @Override
  18. public void onCompleted(Exception ex) {
  19. if (ex != null) {
  20. Log.d("Socket", "setClosedCallback出错");
  21. return;
  22. }
  23. Log.d("Socket", "setClosedCallback");
  24. }
  25. });
  26. webSocket.setEndCallback(new CompletedCallback() {
  27. @Override
  28. public void onCompleted(Exception ex) {
  29. if (ex != null) {
  30. Log.d("Socket", "setEndCallback出错");
  31. return;
  32. }
  33. Log.d("Socket", "setEndCallback");
  34. }
  35. });
  36. webSocket.setWriteableCallback(new WritableCallback() {
  37. @Override
  38. public void onWriteable() {
  39. Log.d("Socket", "onWriteable");
  40. }
  41. });
  42. mywebSocket=webSocket;
  43. final String order = "测试信息";
  44. // Util.writeAll(webSocket, order.getBytes(), new CompletedCallback() {
  45. // @Override
  46. // public void onCompleted(Exception ex) {
  47. // if (ex != null) {
  48. // Log.d("Socket", "writeAll出错");
  49. // return;
  50. // }
  51. // Log.d("Socket", "发送了:" + order);
  52. // }
  53. // });
  54. }
  55. });

  
  1. byte[] encode = Base64.encode(rawImage1, Base64.DEFAULT);
  2. // String base64 = new String(encode);
  3. // String faceBase64 = bitmapToBase64(bitmap).replace("=", "").replace("/", "_").replace("+", "-").replace("\n", "");
  4. final String order = "测试信息";
  5. Util.writeAll(AsynUtils.mywebSocket, encode, new CompletedCallback() {
  6. @Override
  7. public void onCompleted(Exception ex) {
  8. if (ex != null) {
  9. Log.d("Socket", "writeAll出错");
  10. return;
  11. }
  12. // Log.d("Socket", "发送了:" + order);
  13. }
  14. });

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/103614276

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。