Android 网络编程: SOCKET的简单使用。
2012-07-24 12:50
519 查看
本文介绍SOCKET 的服务端和客户端的开发。 在本文中并没有使用异步来对数据进行接收。 因为网上太多有关异步、存储客户端SOCKET的例子了, 但是他们的代码都非常的多, 非常的繁琐, 所以这里就去掉了异步数据接收等。
首先介绍服务端: 这里代码实现的是服务端打开后就等待客户端的连接, 当客户端连接上后就接收消息, 并发消息回去后马上关闭链接。
如果需要做类是聊天室软件的话需要加上“异步处理”
客户端:
主:
那么我们如果写了一个服务端或者客户端就像验证一下怎么办呢?
那就可以用到TCP/IP测试工具
下载地址: http://download.csdn.net/detail/knowheart/4448598
工程源码: http://download.csdn.net/detail/knowheart/4448592
首先介绍服务端: 这里代码实现的是服务端打开后就等待客户端的连接, 当客户端连接上后就接收消息, 并发消息回去后马上关闭链接。
如果需要做类是聊天室软件的话需要加上“异步处理”
public class SocketServer { private ServerSocket mServerSocket; private static final int SERVER_PORT = 6000; //端口 public SocketServer() { } public boolean startServer() { boolean bRet = false; try { //创建一个SOCKET 服务器 mServerSocket = new ServerSocket(SERVER_PORT); bRet = true; } catch (Exception e) { // TODO: handle exception } return bRet; } public void recv() { try { Socket socket = mServerSocket.accept(); //拿到客户端的输入输出(读取,发送) InputStream is = socket.getInputStream(); PrintWriter pw = new PrintWriter(socket.getOutputStream()); //这里读取客户端第一次发来的消息 调试来看吧 byte buffer[] = new byte[1024]; int reCount = is.read(buffer); String msgString = EncodingUtils.getString(buffer, "GB2312"); //我们发回一个"aa"给客户端 pw.print("aa"); pw.flush(); //关掉这个连接 socket.close(); } catch (Exception e) { // TODO: handle exception } } public void close() { try { mServerSocket.close(); } catch (Exception e) { // TODO: handle exception } } }
客户端:
public class SocketClient { private Socket socket; private InputStream mInputStream; private PrintWriter mPrintWriter; private static final String SERVER_IP = "192.168.1.24"; private static final int SERVER_PORT = 6000; public SocketClient() { } public boolean connection() { boolean bRet = false; try { //创建一个客户端连接 InetAddress ia = InetAddress.getByName(SERVER_IP); socket = new Socket(ia, SERVER_PORT); //获取这个客户端连接SOCKET的输入输出 mPrintWriter = new PrintWriter(socket.getOutputStream(), true); mInputStream = socket.getInputStream(); bRet = true; } catch (Exception e) { // TODO: handle exception } return bRet; } //发送消息 public void sendMsg(String msg) { mPrintWriter.print(msg); mPrintWriter.flush(); } //读取消息 public String readMsg() { String msgString = ""; try { byte buffer[] = new byte[1024]; int reCount = mInputStream.read(buffer); msgString = EncodingUtils.getString(buffer, "GB2312"); } catch (Exception e) { // TODO: handle exception } return msgString; } public void close() { try { socket.close(); } catch (Exception e) { // TODO: handle exception } } }
主:
private android.view.View.OnClickListener btnClickListener = new android.view.View.OnClickListener() { @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.btn: { SocketClient socketClient = new SocketClient(); socketClient.connection(); socketClient.sendMsg("123"); socketClient.sendMsg("123"); socketClient.sendMsg("123"); socketClient.sendMsg("123"); String r = socketClient.readMsg(); socketClient.close(); Toast.makeText(SocketActivity.this, r, Toast.LENGTH_LONG).show(); } break; case R.id.btn_server: { SocketServer socketServer = new SocketServer(); socketServer.startServer(); socketServer.recv(); socketServer.close(); } break; default: break; } } };
那么我们如果写了一个服务端或者客户端就像验证一下怎么办呢?
那就可以用到TCP/IP测试工具
下载地址: http://download.csdn.net/detail/knowheart/4448598
工程源码: http://download.csdn.net/detail/knowheart/4448592
相关文章推荐
- Android网络编程之Socket通信实现简单聊天室
- Android网络通信----1.Socket编程之简单客户端与服务器端通信
- 网络编程:使用Socket实现简单的服务器和客户端的通信
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 使用Android网络编程实现简易聊天室
- 一个使用监听器模式实现的J2ME网络编程框架,包括一个简单的登录功能实现(含源代码)
- Java基础知识强化之网络编程笔记17:Android网络通信之 使用Http的Post方式读取网络数据(基于HTTP通信技术)
- 初学Android,网络应用之使用多线程Socket(八十五)
- android快捷开发之Retrofit网络加载框架的简单使用
- Android编程使用GestureDetector实现简单手势监听与处理的方法
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架
- Android Banner(无限轮播图)控件的简单使用(网络数据OkHttp3)
- android 网络编程 HttpGet类和HttpPost类使用详解
- Symbian 网络编程之使用Socket API
- Android网络编程之Socket
- Android使用Universal-ImageLoader在ListView中加载网络图片简单示例
- 使用java swing和socket编程实现简单的多人聊天室
- android中的网络通信(一) socket编程
- 【tcp网络编程】用Socket建立一个简单的文本转换服务器
- 使用socket.io编程的简单聊天室