Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
来源:互联网 发布:mac的解压rar软件 编辑:程序博客网 时间:2024/06/06 12:46
//服务器Service
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Test {public static void main(String[] args) {Thread socketservice=new Thread(new Socket00());socketservice.start();}}class Socket00 implements Runnable{@Overridepublic void run() {try {ServerSocket serverSocket=new ServerSocket(54321);while(true){System.out.println(11);Socket client=serverSocket.accept();//接受客户端请求BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));String message1 = in.readLine();//读取一行数据/** 处理数据设为str*/String str="OK";//返回消息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);out.println(str);in.close();out.close();client.close();}} catch (IOException e) {e.printStackTrace();}}}
//客户端(布局就一个TextView 一个Button)
import java.io.*;import java.net.Socket;import net.testSocket.R;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;//客户端的实现public class TestSocket extends Activity {private TextView text1;private Button but1;private EditText edit1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text1=(TextView)findViewById(R.id.text1); but1=(Button)findViewById(R.id.but1); edit1=(EditText)findViewById(R.id.edit); but1.setOnClickListener(new alistener()); } class alistener implements OnClickListener{@Overridepublic void onClick(View v) {Socket socket=null;String mesg=edit1.getText().toString()+"\r\n";edit1.setText("");try {socket=new Socket("192.168.1.102",54321);//同一局域网的ip地址和服务器的端口号//向服务器发送信息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);out.println(mesg);//接受服务器的信息BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));String mstr=br.readLine();System.out.println(mstr);out.close();br.close();socket.close();} catch(Exception e){System.out.println("ERROR");}}}}
//本人遇见过2.3可用,4.1不可用,解决如下:
android 4.0以上不能在主线程使用网络,因为会造成假死,需要创建一个线程去执行网络任务
即在客户端,按下按钮的监听里不要写执行方法,而是写一个多线程,**thread.start,在那里执行
在4.0中,使用Toast最好利用handler
//在AndroidManifest.xml加入<uses-permission android:name="android.permission.INTERNET" />
0 0
- Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
- “进程计数器不可用”的解决方法
- 服务器应用程序不可用的解决方法
- 服务器应用程序不可用的解决方法
- sudo命令不可用的解决方法
- sudo命令不可用的解决方法
- centos vpn 连接不可用的解决方法
- 出现RPC服务器不可用的解决方法
- ORA-01034:oracle不可用 的解决方法
- 出现RPC服务器不可用的解决方法
- 解决Android Studio 1.5在中国不可用的问题
- 需要缺少的Web组件才能加载,以及项目加载后显示“不可用”的解决方法
- 不可用的按钮
- android adb shell 不可用的情况
- status 的可用和不可用
- jqurey控制控件的可用不可用
- win7默认网关不可用怎么修复 win7默认网关不可用的快速解决方法
- [转]梅花雨的日历控件在ASP.NET2.0下不可用的解决方法
- 一起来学JBoss Wildfly (1) 对Wildfly初体验
- pptpd 服务器配置
- 论文阅读总结
- An Introduction to Interactive Programming in Python 第六课作业 Blackjack
- C++中typename的用法
- Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
- 1411020830-ny-取石子(一)
- 关于wince的永久保存
- spring batch之三 配置和运行Job
- 有效的C++标识符
- poj-2155
- 绝不能以数字开头
- MFC ComBox 控件 调节下拉大小
- 计划