利用Socket与服务器端交互的简单Android范例代码_第1页
利用Socket与服务器端交互的简单Android范例代码_第2页
利用Socket与服务器端交互的简单Android范例代码_第3页
利用Socket与服务器端交互的简单Android范例代码_第4页
利用Socket与服务器端交互的简单Android范例代码_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用Socket与服务器端交互的简单Android范例代码

在Android中可以直接利用java中的Socket与ServerSocket构建socket通信。代码的运行环境:pc端:普通pc,作为服务器,在5648端口进行监听。

代码运行一切正常,客户端发送的文字将在服务器端接收并显示,服务器每接收到客户端的一行文字,就会返回一个从0开始递增的整数,此整数将在客户端显示出来。pc端代码:

packagetest;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

.ServerSocket;

.Socket;

publicclassTestimplementsRunnable{

/**

*@paramargs

*/

intmax=10;//最大开启线程数

inti=0;//回复数字

inttemp;

ServerSocketserverSocket;

Socketsocket[];

publicTest(){

try{

serverSocket=newServerSocket(5648);//在5648端口进行

侦听

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

System.out.println("can'tinitateServerSocket!");

return;

}

socket=newSocket[max];

@Override

System.out.println("waitingforconnect");

try{

null){

while((socket[i]=serverSocket.accept())!=

temp=i;

i++;

newThread(this).start();

端的连接,就会开启一个工作线程

//每侦听到一个客户

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

publicstaticvoidmain(String[]args){

newTest();

}

publicvoidrun(){

Socketsk=socket[temp];

System.out.println("accept:"+sk.getInetAddress().getHostAddres

s());

InputStreamis=null;

OutputStreamos=null;

BufferedReaderbr=null;

PrintWriterpw=null;

try{

is=sk.getInputStream();

os=sk.getOutputStream();

br=newBufferedReader(newInputStreamReader(is));

pw=newPrintWriter(os);

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

try{

sk.close();

}catch(IOExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

return;

}

Stringstr;

try{

intm=0;

while((str=br.readLine())!=null){

System.out.println(str);

pw.println(m);

pw.flush();

m++;

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

</pre>

android设备客户端代码:MainActivity.java;代码:

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

.Socket;

.UnknownHostException;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.util.Log;

importandroid.view.Menu;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.EditText;

importandroid.widget.Toast;

publicclassMainActivityextendsActivityimplementsOnClickListener,Runnable{

privateButtonbutton;

privateEditTexteditText;

privateSocketsocket;

privatePrintWriterpw;

privateBufferedReaderbr;

privateHandlerhandler;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

handler=newHandler();

button=(Button)findViewById(R.id.button);

button.setOnClickListener(this);

editText=(EditText)findViewById(R.id.edittext);

try{

socket=newSocket("",5648);

//连接到的5648端口

}catch(UnknownHostExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

Log.e("socket","unknownhost");

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

Log.e("socket","ioexecption");

}

if(socket==null){

Log.e("socket","null");

}

else

try{

pw=newPrintWriter(socket.getOutputStream());

br=newBufferedReader(newInputStreamReader(socket.getInputStream()));

if(pw!=null&&br!=null){

newThread(this).start();

}

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.activity_main,menu);

returntrue;

}

publicvoidonClick(Viewview){

if(view==button){

Stringstr;

str=editText.getText().toString();

pw.println(str);

pw.flush();

}

}

publicvoidrun(){

try{

Stringstr;

while((str=br.readLine())!=null){

finalStrings=str;

handle

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论