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 }   
  • 相关阅读:
    区间DP练习题题解
    【算法学习笔记】区间DP
    题解 CF1550C. Manhattan Subarrays (思维)
    【算法学习笔记】模运算总结
    题解 [HDU6747] Rotate 期望 + 逆元
    重新点亮linux 命令树————进程的控制[二十二]
    重新点亮linux 命令树————查看进程[二十一]
    docker 应用篇————日志、元数据、进程查看[五]
    docker 应用篇————docker基本命令[四]
    docker 应用篇————docker原理[三]
  • 原文地址:https://www.cnblogs.com/qingblog/p/2549609.html
Copyright © 2011-2022 走看看