C#编写的socket服务器怎么发数据给android手机?
我现在的问题是,android手机能通过socket连接到服务器,而且服务器也能接收到android手机发送来的数据,但是服务器收到数据之后发送数据给android手机,然后android就收不到数据了;
以下是android手机上发送文件名并且得到文件大小的代码
// 向服务器提出下载请求,返回下载文件的大小 private long request(String fileName, String password) throws IOException { // 获取socket的输入流并包装成DataInputStream DataInputStream in = new DataInputStream(socket.getInputStream()); // 获取socket的输出流并包装成PrintWriter PrintWriter out = new PrintWriter(new OutputStreamWriter( socket.getOutputStream())); // 生成下载请求字符串 String requestString = fileName;// + "@ " + password; System.out.println("发出下载请求:"+fileName); out.println(requestString); // 发出下载请求 out.flush(); return in.readLong(); // 接收并返回下载文件长度 }
private string ReceiveFileName() { string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes = m_socket.Receive(recvBytes, recvBytes.Length, 0); //从android客户端接受信息 recvStr = Encoding.ASCII.GetString(recvBytes, 0, bytes); Console.WriteLine("文件名"+recvStr); return recvStr;//返回文件名 } private void SendFile() { while (m_IsStart) { string fileName = ReceiveFileName(); if (fileName != "") { if (File.Exists(m_FileDirect + "1.jpg"))//下载本地存在的一个文件 { FileInfo fi = new FileInfo(m_FileDirect + "1.jpg"); byte[] len = BitConverter.GetBytes(fi.Length); m_socket.Send(len);//发送文件的长度 //发送文件 try { m_socket.SendFile(m_FileDirect + "1.jpg"); } catch (Exception e) { Console.WriteLine("出现错误" + e.Message); } } } } }