




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android客户端通过socket与服务器通信下面是一个demo,Android客户端通过socket与服务器通信。由于Android里面可以完全使用java.io.*包和.*包,那么,实际上,逻辑部分与J2SE没有区别。只是UI代码不一样。Android客户端通过socket与服务器通信分为下面5步:(1)通过IP地址和端口实例化Socket,请求连接服务器; view plaincopy to clipboardprint?socket = new Socket(27,54321); /IP:27,端口54321 socket = new Socket(27,54321); /IP:27,端口54321 (2)获取Socket流以进行读写,并把流包装进BufferWriter或者PrintWriterview plaincopy to clipboardprint?PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(),true); PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream(),true); 这里涉及了三个类:socket.getOutputStream得到socket的输出字节流,OutputStreamWriter是字节流向字符流转换的桥梁,BufferWriter是字符流,然后再包装进PrintWriter。(3)对Socket进行读写view plaincopy to clipboardprint?out.println(message); out.println(message); (4)关闭打开的流view plaincopy to clipboardprint?out.close(); out.close(); 完整工程代码如下:view plaincopy to clipboardprint?package com.yarin.android.Examples_08_04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import .Socket; 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; public class Activity01 extends Activity private final String DEBUG_TAG = Activity01; private TextView mTextView = null; private EditText mEditText = null; private Button mButton = null; /* Called when the activity is first created. */ 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); /登陆 mButton.setOnClickListener(new OnClickListener() public void onClick(View v) Socket socket = null; String message = mEditText.getText().toString() + /r/n; try /创建Socket / socket = new Socket(10,54321); socket = new Socket(27,54321); /IP:27,端口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(); ); 布局文件main.xmlview plaincopy to clipboardprint? AndroidManifest.xml文件如下view plaincopy to clipboardprint? 当然,还有服务器端得代码view plaincopy to clipboardprint?package com.yarin.android.Examples_08_04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import .ServerSocket; import .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.pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智算中心光电协同交换网络全栈技术白皮书 2025
- 晋宁工程研究方案(3篇)
- 2025年翻译研究试题及答案
- 装饰考试真题及答案
- 医疗美容市场2025消费者心理调研与服务质量优化方案报告
- 教师招聘之《小学教师招聘》考前冲刺模拟题库含答案详解【巩固】
- 虚拟活动现场直播服务创新创业项目商业计划书
- 片式电位器创新创业项目商业计划书
- 知识内容订阅与推送API服务创新创业项目商业计划书
- 农产品影视取景地创新创业项目商业计划书
- YS/T 931-2013硝酸钯
- GB/T 20863.1-2021起重机分级第1部分:总则
- 工程勘察设计收费标准(2002年修订本)
- 高中通用技术会考试题及详解
- 肝性脑病(课件)
- 【名校】《三思而后行》 完整版课件
- 公司内部程序文件(格式模版)
- 泛光施工招标文件
- 旅游策划实务整套课件完整版电子教案课件汇总(最新)
- DB23∕T 2661-2020 地热能供暖系统技术规程
- 人工挖孔桩施工监测监控措施
评论
0/150
提交评论