织梦CMS - 轻松建站从此开始!

沙龙国际_沙龙国际亚洲第一品牌网上娱乐

当前位置: 主页 > 沙龙国际开户 >

客户端与服务器如何进行数据传输

时间:2017-07-17 23:40来源:未知 作者:admin 点击:
感觉自己对于网络传输的问题一直很困惑。网上查阅的资料也不是自己想要的,所以只好到这里来求大神帮助! 最近在做聊天室,客户端是android,我自己在本地搭了workerman当做服务器

感觉自己对于网络传输的问题一直很困惑。网上查阅的资料也不是自己想要的,所以只好到这里来求大神帮助!

最近在做聊天室,客户端是android,我自己在本地搭了workerman当做服务器。两边都是采用websocket协议。

我用inputstream读取txt文件通过websocket发送到服务器,服务器接受到数据后写入txt文件。这时txt文件正常能够打开。

现在我用同样的方法读取android录音出来的.amr文件发送到服务器并写入.amr文件中,会出现文件损坏无法打开的问题。

基于此,感觉自己平时只注重软件功能的实现而不注重计算机原理的弊端出现了。出现了一些自己也觉得很幼稚的问题:
1:网络之间是如何传输数据的?
我将音频文件读取出来转换成二进制传输到服务端,服务端怎么将这些二进制恢复成原来的文件呢?

2:如何解决上面说的文件损坏无法打开的问题?

还是说我的理解一开始就是错的,感觉将音频文件读取出来就是不行?而应该用什么方法将音频文件进行转换才能传送呢?

客户端android代码:

 mConnection.connect(wsuri, new WebSocketHandler() {

 @Override
 public void onOpen() {
 Log.d(TAG, "Status: Connected to "   wsuri);

 InputStream is = null;
 try {
         is = new FileInputStream(_file);
     } catch (FileNotFoundException e) {
         e.printStackTrace();
     }

 byte[] bytes = new byte[1024];
 int len = 0;

 try {
        while((len=is.read(bytes))!=-1)
        {
            Log.d(TAG, "senBinaryMessage: "   bytes);
            mConnection.sendBinaryMessage(bytes);
        }
        is.close();
     } catch (IOException e) {
        e.printStackTrace();
        }                  
     }                

}

服务端代码:

$worker-
      
      (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容