Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 582|回复: 0

[实例教程]Android 通过wifi向服务器端发送数据

[复制链接]

该用户从未签到

发表于 2011-10-22 12:47:16 | 显示全部楼层 |阅读模式
这个是我在手机上运行时截的图,下面三个按钮是操作wifi网关的按钮,下面的那个提示框是按下这个按钮出现的,数字为0表示正在关闭wifi,数字2表示正在开启wifi,数字1表示wifi处于关闭状态,数字3表示 wifi处于开启状态。




       上面的的发送按钮可以发送数据到服务器,实验室的是局域网,没有无线网络,我利用一个无线路由与电脑相连,在利用手机wifi搜索到该网络,手机与电脑构成局域网,便可发送数据。至于服务器端,可以采用网络调试助手接收数据,协议选择TCP服务器,ip地址和端口视自己情况定。

       当然也可以自己写个服务器端程序,再在命令行窗口中显示接收到的数据。

       客户端程序:

java代码: package eoe.android;



import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.content.Context;

import android.widget.Toast;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import android.net.wifi.WifiManager;

import java.net.Socket;

import com.zx.android.ClientActivity;



public class ClientActivity extends Activity {

/** Called when the activity is first created. */

private Button startButton = null;

private Button stopButton = null;

private Button checkButton = null;

private WifiManager wifiManager = null;

private final String DEBUG_TAG= "Activity01";

private TextView mTextView=null;

private EditText mEditText=null;

private Button mButton=null;



@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mButton = (Button)findViewById(R.id.Button01);

mTextView=(TextView)findViewById(R.id.TextView01);

mEditText=(EditText)findViewById(R.id.EditText01);

startButton = (Button)findViewById(R.id.startWifi);

stopButton = (Button)findViewById(R.id.stopWifi);

checkButton = (Button)findViewById(R.id.checkWifi);

startButton.setOnClickListener(new StartWifiListener());

stopButton.setOnClickListener(new StopWifiListener());

checkButton.setOnClickListener(new CheckWifiListener());

//登陆

mButton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Socket socket = null;

String message = mEditText.getText().toString() + "/r/n";

try {

//创建Socket

socket = new Socket("192.168.1.102",54321);

//向服务器端发送消息

PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);

out.println(message);

//接收来自服务器端的消息

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); String msg = br.readLine();

if ( msg != null ) {

mTextView.setText(msg);

} else {

mTextView.setText("数据错误!");

}

//关闭流

out.close(); br.close();

//关闭Socket

socket.close();

} catch (Exception e) {

// TODO: handle exception

Log.e(DEBUG_TAG, e.toString());

}

}

});

}

class StartWifiListener implements OnClickListener{

public void onClick(View v) {

wifiManager = (WifiManager)ClientActivity.this.getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(true);

System.out.println("wifi state --->" + wifiManager.getWifiState());

Toast.makeText(ClientActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();

}

}

class StopWifiListener implements OnClickListener{

public void onClick(View arg0) {

wifiManager = (WifiManager)ClientActivity.this.getSystemService(Context.WIFI_SERVICE); wifiManager.setWifiEnabled(false);

System.out.println("wifi state --->" + wifiManager.getWifiState());

Toast.makeText(ClientActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();

}

}

class CheckWifiListener implements OnClickListener{

public void onClick(View v) {

wifiManager = (WifiManager)ClientActivity.this.getSystemService(Context.WIFI_SERVICE); System.out.println("wifi state --->" + wifiManager.getWifiState());

Toast.makeText(ClientActivity.this, "当前Wifi网卡状态为" + wifiManager.getWifiState(), Toast.LENGTH_SHORT).show();

}

}

}
服务器端程序:

java代码: package eoe.android;



import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;



public class Server implements Runnable {

public void run() {

try {

//创建ServerSocket

ServerSocket serverSocket = new ServerSocket(54321);

while (true) {

//接受客户端请求

Socket client = serverSocket.accept();

System.out.println("accept");

try {

//接收客户端消息

BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

String str = in.readLine();

System.out.println("read:" + str);

//向服务器发送消息

PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);

out.println("server message");



//关闭流

out.close();

in.close();

} catch (Exception e) {

System.out.println(e.getMessage());

e.printStackTrace();

} finally {



//关闭

client.close();

System.out.println("close");

}

}

} catch (Exception e) {

System.out.println(e.getMessage());

}

}



//main函数,开启服务器

public static void main(String[] args) {

Thread desktopServerThread = new Thread(new Server());

desktopServerThread.start();

}

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-22 16:52 , Processed in 0.361209 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表