zoukankan      html  css  js  c++  java
  • Android通过Socket(TCP/IP)与PC通讯

    这个简单的例子将演示应用Java实现客户端与服务器端传输文件的方法。

    服务器端源代码:
    
    
    [java] view plaincopyprint?
    import java.net.*;    
    import java.io.*;    
    
    public class FileServer {    
      public static void main (String [] args ) throwsIOException {    
        // create socket     
        ServerSocket servsock = new ServerSocket(13267);    
        while (true) {    
          System.out.println("Waiting...");    
          Socket sock = servsock.accept();    
          System.out.println("Accepted connection : " + sock);    
          // sendfile     
          File myFile = new File ("source.pdf");    
          byte [] mybytearray  = new byte [(int)myFile.length()];    
          FileInputStream fis = new FileInputStream(myFile);    
          BufferedInputStream bis = new BufferedInputStream(fis);    
          bis.read(mybytearray,0,mybytearray.length);    
          OutputStream os = sock.getOutputStream();    
          System.out.println("Sending...");    
          os.write(mybytearray,0,mybytearray.length);    
          os.flush();    
          sock.close();    
          }    
        }    
    }   
    
     1 客户端源代码:
     2 
     3 
     4 [java] view plaincopyprint?
     5 import java.net.*;    
     6 import java.io.*;    
     7 
     8 public class FileClient{    
     9   public static void main (String [] args ) throws IOException {    
    10     int filesize=6022386; // filesize temporary hardcoded     
    11     long start = System.currentTimeMillis();    
    12     int bytesRead;    
    13     int current = 0;    
    14     // localhost for testing     
    15     Socket sock = new Socket("127.0.0.1",13267);    
    16     System.out.println("Connecting...");    
    17     
    18     // receive file     
    19     byte [] mybytearray  = new byte [filesize];    
    20     InputStream is = sock.getInputStream();    
    21     FileOutputStream fos = new FileOutputStream("source-copy.pdf");    
    22     BufferedOutputStream bos = new BufferedOutputStream(fos);    
    23     bytesRead = is.read(mybytearray,0,mybytearray.length);    
    24     current = bytesRead;    
    25     // thanks to A. Cádiz for the bug fix     
    26     do {    
    27        bytesRead =    
    28           is.read(mybytearray, current, (mybytearray.length-current));    
    29        if(bytesRead >= 0) current += bytesRead;    
    30     } while(bytesRead > -1);    
    31     
    32     bos.write(mybytearray, 0 , current);    
    33     bos.flush();    
    34     long end = System.currentTimeMillis();    
    35     System.out.println(end-start);    
    36     bos.close();    
    37     sock.close();    
    38   }    
    39 }   
  • 相关阅读:
    《SQL Server 2000设计与T-SQL编程》
    sql语句优化 (转)
    SQL Server优化50法(转)
    (转)SQL 优化原则
    sql 锁
    后台服务标准化运营
    ReactNative For Android 框架启动核心路径剖析
    手机QQ会员H5加速方案——sonic技术内幕
    微信支付商户系统架构背后的故事
    [干货] 有了微信小程序,谁还学ReactNative?
  • 原文地址:https://www.cnblogs.com/qingblog/p/2549609.html
Copyright © 2011-2022 走看看