版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文具行业国际市场拓展策略考核试卷
- 缝制设备电气系统设计考核试卷
- 涂料在纸品行业的应用考核试卷
- 复混肥料在农业面源污染防治中的作用考核试卷
- 商业银行金融租赁业务与操作流程考核试卷
- 儿童音乐教育行业市场突围建议书
- 印刷技术在个性化日历印刷的图案设计考核试卷
- 精准营养学行业的消费心理分析
- 云医疗行业市场发展趋势及投资咨询报告
- 无人化物流行业竞争格局与投资战略研究咨询报告
- 小学生运动安全课
- 你来比划我来猜大全(配图版)
- 考试评价改革与教学质量管理方张松省公开课金奖全国赛课一等奖微课获奖课件
- 【高中+语文】《天文学上的旷世之争》(教学课件)+高二语文(统编版+选择性必修下册)
- 吴明珠人物介绍
- 训练基地餐饮服务服务质量管理方案
- 中医学理论体系的形成和发展
- 《无人机航拍摄像》课程标准(含课程思政)
- 虹桥凯悦酒店员工手册
- 领导力与变革管理
- 第二课《鲁迅与美术》(版画篇)课件-2023-2024学年学年浙美版初中美术七年级下册
评论
0/150
提交评论