Android中的socket编程,基础
2017-04-19 08:59
274 查看
本身就是菜鸟一枚。所以学习的一切东西都是在网上查找资料而得来的。不过如果中间可能会遇到一些问题,这些问题可能大家在学习的时候也会遇到,所以就很小心的记录了下来。
主要源码如下:
Android 客户端:
主要代码:
服务端主要代码:
个人在写的过程中,遇到的错误:
提示错误:
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地址,否则会出现一些错误。
主要源码如下:
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地址,否则会出现一些错误。
相关文章推荐
- Android基于客户端和服务器的Socket编程例子之Socket基础通讯--socket模型使用
- android网络编程-socket基础
- Android基于客户端和服务器的Socket编程例子之Socket基础通讯--socket相关知识
- Android开发Socket编程基础
- Android基础学习之Socket、Http、Json网络编程
- Android Socket编程基础
- socket编程基础
- socket编程基础
- Socket编程基础
- C#中使用异步Socket编程实现TCP网络服务的CS的通讯构架(一)----基础类库部分
- linux下socket编程(基础参考)
- [导入]Socket编程与线程基础
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- Java Socket网络编程初级入门-Java基础-Java-编程开发
- UDP Socket编程基础
- Linux 下Socket编程基础
- 基于Socket的Java网络编程集粹-Java基础-Java-编程开发
- C#2.0学习9--Socket编程与线程基础
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分
- socket编程基础