




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于Android 的socket编程【以聊天为例】下面,用敲门的方式演示Android如何实现套接字的通信。本例实现功能如下:Server端开启服务Client端发起链接请求,并向Server端发送数据Server端响应请求,并在Server显示,向Client端返回数据Client端接收Server的数据并显示本例效果如下:终端1:终端2:Server端:本例源代码如下:Server端:package com.android.Yao;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .ServerSocket;import .Socket;public class YaoChatServer extends Thread private YaoChatServer() throws IOException CreateSocket();/创建Socket服务器 public void run() Socket client;String txt;try while (true)/线程无限循环,实时监听socket端口client=ResponseSocket(); /响应客户端链接请求。while(true)txt=ReceiveMsg(client); System.out.println(txt);/链接获得客户端发来消息,并将其显示在Server端的屏幕上SendMsg(client,txt);/向客户端返回消息if(true)break;/中断,继续等待链接请求CloseSocket(client);/关闭此次链接 catch (IOException e) System.out.println(e);private ServerSocket server = null;private static final int PORT = 5000;private BufferedWriter writer;private BufferedReader reader;private void CreateSocket() throws IOExceptionserver = new ServerSocket(PORT, 100);System.out.println(Server starting.); private Socket ResponseSocket() throws IOExceptionSocket client = server.accept(); System.out.println(client connected.);return client;private void CloseSocket(Socket socket) throws IOExceptionreader.close();writer.close();socket.close();System.out.println(client closed.);private void SendMsg(Socket socket,String Msg) throws IOException writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream();writer.write(Msg+n);writer.flush();private String ReceiveMsg(Socket socket) throws IOExceptionreader = new BufferedReader(new InputStreamReader(socket.getInputStream(); System.out.println(server get input from client socket.);String txt=Sever send:+reader.readLine();return txt;public static void main(final String args) throws IOException YaoChatServer yaochatserver = new YaoChatServer();if (yaochatserver != null) yaochatserver.start();Client端:package com.android.Yao;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import .UnknownHostException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import .Socket;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.*;public class YaoChatRoomAndroid extends Activity /* Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.chatroom);findviews();setonclick();private EditText chattxt;private TextView chattxt2;private Button chatok;public void findviews()chattxt = (EditText)this.findViewById(R.id.chattxt);chattxt2 = (TextView)this.findViewById(R.id.chattxt2);chatok = (Button)this.findViewById(R.id.chatOk);private void setonclick()chatok.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View v) try connecttoserver(chattxt.getText().toString(); catch (UnknownHostException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(););public void connecttoserver(String socketData) throws UnknownHostException, IOExceptionSocket socket=RequestSocket(07,5000);SendMsg(socket,socketData); String txt = ReceiveMsg(socket);this.chattxt2.setText(txt); private Socket RequestSocket(String host,int port) throws UnknownHostException, IOException Socket socket = new Socket(host, port);return socket;private void SendMsg(Socket socket,String msg) throws IOExceptionBufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream();writer.write(msg.replace(n, )+n);writer.fl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽师范大学专职辅导员招聘12人模拟试卷有答案详解
- 2025江西招收劳务派遣制工作人员3人考前自测高频考点模拟试题及答案详解(必刷)
- 2025广东中山市沙溪镇人民政府所属事业单位招聘事业单位人员11人模拟试卷及答案详解(网校专用)
- 2025胡杨河市人民法院招聘书记员(1人)模拟试卷有完整答案详解
- 2025年济宁金乡县事业单位公开招聘工作人员(教育类)(39人)考前自测高频考点模拟试题及答案详解(各地真题)
- 2025年西安亮丽电力集团有限责任公司招聘(10人)模拟试卷及1套参考答案详解
- 浙江国企招聘2025温州市瓯飞新型建材有限公司面向社会公开招聘10名工作人员(合同制)笔试历年参考题库附带答案详解
- 2025黑龙江省建设科创投资有限公司面向社会招聘1人笔试历年参考题库附带答案详解
- 2025陕西恒润利农生物科技有限公司招聘(18人)笔试历年参考题库附带答案详解
- 2025重庆明德商业保理有限公司招聘1人笔试历年参考题库附带答案详解
- 2025年肝素行业研究报告及未来行业发展趋势预测
- 2025年脚手架租赁合同3篇
- 医院工作纪律培训课件
- 营房装修施工方案(3篇)
- 品牌基础知识培训内容课件
- 2025年知识竞赛-监理知识竞赛历年参考题库含答案解析(5套典型题)
- DG-TJ08-2120-2025 集体土地所有权调查技术标准
- 脑梗死健康宣教及指导
- 遵守安全生产法 当好第一责任人
- 创伤性气胸护理查房
- DB42T 750-2011 家用燃气燃烧器具安装维修服务质量评价规范
评论
0/150
提交评论