基本信息
源码名称:android 共享手机无线网络(无须root,不耗流量)
源码大小:5.42M
文件格式:.zip
开发语言:Java
更新时间:2015-08-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import android.os.Bundle;
import android.app.IntentService;
import android.content.Intent;
import android.os.ResultReceiver;
import android.view.View;
public class ServerService extends IntentService {
private boolean serviceEnabled;
private int port;
private File saveLocation;
private ResultReceiver serverResult;
public ServerService() {
super("ServerService");
serviceEnabled = true;
}
@Override
protected void onHandleIntent(Intent intent) {
port = ((Integer) intent.getExtras().get("port")).intValue();
saveLocation = (File) intent.getExtras().get("saveLocation");
serverResult = (ResultReceiver) intent.getExtras().get("serverResult");
//signalActivity("Starting to download");
String fileName = "";
ServerSocket welcomeSocket = null;
Socket socket = null;
try {
welcomeSocket = new ServerSocket(port);
while(true && serviceEnabled)
{
//Listen for incoming connections on specified port
//Block thread until someone connects
socket = welcomeSocket.accept();
//signalActivity("TCP Connection Established: " socket.toString() " Starting file transfer");
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
String inputData = "";
signalActivity("About to start handshake");
//Client-Server handshake
/*
String test = "Y";
test = test br.readLine() test;
signalActivity(test);
*/
/*
inputData = br.readLine();
if(!inputData.equals("wdft_client_hello"))
{
throw new IOException("Invalid WDFT protocol message");
}
pw.println("wdft_server_hello");
inputData = br.readLine();
if(inputData == null)
{
throw new IOException("File name was null");
}
fileName = inputData;
pw.println("wdft_server_ready");
*/
//signalActivity("Handshake complete, getting file: " fileName);
String savedAs = "WDFL_File_" System.currentTimeMillis();
File file = new File(saveLocation, savedAs);
byte[] buffer = new byte[4096];
int bytesRead;
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
while(true)
{
bytesRead = is.read(buffer, 0, buffer.length);
if(bytesRead == -1)
{
break;
}
bos.write(buffer, 0, bytesRead);
bos.flush();
}
/*
fos.close();
bos.close();
br.close();
isr.close();
is.close();
pw.close();
os.close();
socket.close();
*/
bos.close();
socket.close();
signalActivity("File Transfer Complete, saved as: " savedAs);
//Start writing to file
}
} catch (IOException e) {
signalActivity(e.getMessage());
}
catch(Exception e)
{
signalActivity(e.getMessage());
}
//Signal that operation is complete
serverResult.send(port, null);
}
public void signalActivity(String message)
{
Bundle b = new Bundle();
b.putString("message", message);
serverResult.send(port, b);
}
public void onDestroy()
{
serviceEnabled = false;
//Signal that the service was stopped
//serverResult.send(port, new Bundle());
stopSelf();
}
}