利用Socket与服务器端交互的简单Android范例代码.docx
-
资源ID:93136193
资源大小:14.20KB
全文页数:10页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
利用Socket与服务器端交互的简单Android范例代码.docx
利用Socket与服务器端交互的简单Android范例代码在Android中可以直接利用java中的Socket与ServerSocket构建socket通 信。代码的运行环境:pc端:普通pc ,作为服务器,在5648端口进行监听。代码运行一切正常,客户端发送的文字将在服务器端接收并显示,服务器每接收 到客户端的一行文字,就会返回一个从0开始递增的整数,此整数将在客户端显 示出来。pc端代码:package test;import java io.BufferedReader;import java.io.lOException;import java.io.Inputstream;import java io.InputStreamReader;import java.io.Outputstream;import java,io.Printwriter;import .ServerSocket;import .Socket;public class Test implements Runnable/* param argspublic void run() try (String str;while (str=br.readLine()!= null )final String s=str;handler.post(new Runnable()public void run () Toast .makeText(MainActivity .this, Toast.LENGTH_LONG).show(););) catch (lOException e) / TODO Auto-generated catch blocke.printStackTrace();</pre>*/int max=10;/最大开启线程数int i=0;/回复数字int temp;ServerSocket serversocket;Socket socket;public Test ()try serverSocket=new ServerSocket( 5648);/在 5648 端口进行侦听 catch (lOException e) / TODO Auto-generated catch blocke.printStackTrace();System.out .println( "can't imitate ServerSocket!11);return ;)socket=new Socketmax;System.out .println( "waiting for connect");try while (socketi=serverSocket.accept()!=null )temp=i;i+;new Thread( this ).start。;每侦听到一个客户端的连接,就会开启一个工作线程) catch (lOException e) / TODO Auto-generated catch blocke.printStackTrace();)public static void main (String args) new Test();Overridepublic void run() Socket sk=sockettemp;System, out .println( "accept:" +sk.getlnetAddress().getHostAddres s();Inputstream is=null;Outputstream os=null;BufferedReader br=null;Printwriter pw=null;try (is=sk.getlnputstream();os=sk.getOutputStream();br=new BufferedReader( new InputStreamReader( is);pw=new PrintWriter(os); catch (lOException e) / TODO Auto-generated catch blocke.printStackTrace();try (sk.close(); catch (lOException el) / TODO Auto-generated catch blockel.printStackTrace();return ;)String str;try (int m=0;while (str=br.readLine()!= null )System.out .println(str);pw.println(m);pw.flush();m+;) catch (lOException e) / TODO Auto-generated catch block e.printStackTrace();)</pre>android设备客户端代码:MainActivity. java;代码:import java.io.BufferedReader;import java.io.lOException;import java.io.InputStreamReader;import java.io.Printwriter;import .Socket;import .UnknownHostException;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener,Runnableprivate Button button;private EditText editText;private Socket socket;private Printwriter pw;private BufferedReader br;private Handler handler;Overridepublic void onCreate(Bundle savedlnstanceState) super .onCreate(savedlnstanceState);setContentView(R.layout.activity_main);handler=new Handler();button=(Button)findViewById(R.id.button);button.setOnClickListener(this);editText=(EditText)findViewById(R.id.edittext);try socket=new Socket( "" ,5648);连接到 tobacco5648. xicp. net 的 5648 端口 catch (UnknownHostException e) / TODO Auto-generated catch blocke, printStackTrace();Log.e("socket""unknown host"); catch (lOException e) / TODO Auto-generated catch blocke.printStackTrace();Log.e("socket"/'io execption");if(socket=null)Log.e("socket"/'null");)elsetry pw=new PrintWriter(socket.getOutputStream();br=new BufferedReader(new InputStreamReader(socket.getlnputstream();if(pw!=null&&br!=null)new Thread(this).start(); catch (lOException e) / TODO Auto-generated catch blocke, printStackTrace();Overridepublic boolean onCreateOptionsMenu (Menu menu) menu);getMenuInflater()inflate(R.menuactivity_main return true ;)public void onClick(View view) if(view=button)String str;str=editText.getText()toString();pw.println(str);pw.flush();