Android中的socket编程,基础
来源:互联网 发布:酷派手机自动开启数据 编辑:程序博客网 时间:2024/06/10 05:21
本身就是菜鸟一枚。所以学习的一切东西都是在网上查找资料而得来的。不过如果中间可能会遇到一些问题,这些问题可能大家在学习的时候也会遇到,所以就很小心的记录了下来。
主要源码如下:
Android 客户端:
主要代码:
class MyThread extends Thread { public String txt1; public MyThread(String str) { txt1 = str; } @Override public void run() { //定义消息 Message msg = new Message(); msg.what = 0x11; Bundle bundle = new Bundle(); bundle.clear(); try { //连接服务器 并设置连接超时为5秒 socket = new Socket(); //InetSocketAddress(服务端的ip地址,端口号) ip地址和端口号必须要与服务器端的对应,否侧则会提示连接失败。 socket.connect(new InetSocketAddress("192.168.1.35", 34562), 5000); //获取输入输出流,获取服务端返回回来的信息的输入流。 OutputStream ou = socket.getOutputStream(); BufferedReader bff = new BufferedReader(new InputStreamReader( socket.getInputStream())); //读取发来服务器信息 String line = null; buffer=""; while ((line = bff.readLine()) != null) { buffer = line + buffer; } //向服务器发送信息 ou.write("android 客户端".getBytes("gbk")); ou.flush(); bundle.putString("msg", buffer.toString()); msg.setData(bundle); //发送消息 修改UI线程中的组件 myHandler.sendMessage(msg); //关闭各种输入输出流 bff.close(); ou.close(); socket.close(); } catch (SocketTimeoutException aa) { //连接超时 在UI界面显示消息 bundle.putString("msg", "服务器连接失败!请检查网络是否打开"); msg.setData(bundle); //发送消息 修改UI线程中的组件 myHandler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); } } }
服务端主要代码:
public class AndroidRunable implements Runnable { Socket socket = null; public AndroidRunable(Socket socket) { this.socket = socket; } @Override public void run() { // 向android客户端输出hello worild String line = null; InputStream input; OutputStream output; String str = "hello world!"; try { //向客户端发送信息 output = socket.getOutputStream(); input = socket.getInputStream(); BufferedReader bff = new BufferedReader( new InputStreamReader(input)); output.write(str.getBytes("gbk")); output.flush(); //半关闭socket socket.shutdownOutput(); //获取客户端的信息 while ((line = bff.readLine()) != null) { System.out.print(line); } //关闭输入输出流 output.close(); bff.close(); input.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
个人在写的过程中,遇到的错误:
提示错误:
java.net.ConnectException: failed to connect to /192.168.1.1 (port 34562) after 5000ms: isConnected failed: ECONNREFUSED (Connection refused)
Caused by: libcore.io.ErrnoException: isConnected failed: ECONNREFUSED (Connection refused)
最后找的的原因,就是因为连接服务端的ip地址写错了。报错的错误是连接被拒绝,肯定第一时间在找服务端的问题,其实是客户端有问题。
代码是很简单的,如果如果想运行完整的代码,点击链接下载:
http://download.csdn.net/detail/lanxingfeifei/9818153
下载完代码,一定要记得更改程序中端口号和IP地址,否则会出现一些错误。
0 0
- Android中的socket编程,基础
- Android中的Socket编程
- Android中的socket编程
- Android开发Socket编程基础
- android网络编程-socket基础
- ActionScript3.0中的Socket编程基础
- android中的网络通信(一) socket编程
- Android中的Socket编程的基本思路
- Android中的socket编程(一)
- Android中的socket编程(三)
- Java基础篇Socket网络编程中的应用实例
- JAVA基础--关于Socket编程中的I/O阻塞
- Socket编程基础
- socket编程基础
- socket编程基础
- socket编程基础
- c#socket编程基础
- socket编程基础
- 一篇SSM框架整合友好的文章(一)
- 虚拟机的基本管理和快照
- R’s Scoping
- CMake学习笔记(二)——CMake语法
- QT在构造函数中退出程序
- Android中的socket编程,基础
- iOS移动端架构的那些事
- 判定Java源文件名称
- Nginx slab的实现 --- 第二篇“基于页的内存分配”
- 注解(Annotation)自定义注解(二)--运行时注解解析
- 【解题报告】UVALive 3938 线段树深入使用
- leafletjs实现动态标记点【部分代码】
- 2017暑假实习生java开发工程师面试(京东)
- OpenWRT中英文支持