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 }   
  • 相关阅读:
    [IOS/翻译]Core Services Layer
    JEval使用实例
    Spring面试总结
    对easyui datagrid进行扩展,当滚动条拉直最下面就异步加载数据。
    虚拟机无法安装64位系统,是否说明硬件不支持?
    zh-cn,zh-tw,en-us,en-gb等网页语言代码一览表
    Python 计算程序运行时间
    美国教授是如何评价中国研究生的
    过来人谈在美国大学里的中国研究生
    javascript 十六进制与RGB颜色值的相互转换
  • 原文地址:https://www.cnblogs.com/qingblog/p/2549609.html
Copyright © 2011-2022 走看看