Android的TCP和UDP传输 简单程序
来源:互联网 发布:康得新裸眼3d知乎 编辑:程序博客网 时间:2024/06/05 15:04
TCP UDP时常用的网络通信方式,具体内容及传输方式可以百度搜索这里不再赘述,
我做的主要是把源码发出来,给大家参考。
首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。
常用的tcp连接图
服务器端代码
try { Boolean endFlag = false; ServerSocket ss = new ServerSocket(12345); while (!endFlag) { // 等待客户端连接 Socket s = ss.accept(); BufferedReader input = new BufferedReader(newInputStreamReader(s.getInputStream())); //注意第二个参数据为true将会自动flush,否则需要需要手动操作output.flush() PrintWriter output = newPrintWriter(s.getOutputStream(),true); String message = input.readLine(); Log.d("Tcp Demo", "message from Client:"+message); output.println("message received!"); //output.flush(); if("shutDown".equals(message)){ endFlag=true; } s.close(); } ss.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }客户端代码:
try { Socket s = new Socket("localhost", 12345); // outgoing stream redirect to socket OutputStream out = s.getOutputStream(); // 注意第二个参数据为true将会自动flush,否则需要需要手动操作out.flush() PrintWriter output = new PrintWriter(out, true); output.println("Hello IdeasAndroid!"); BufferedReader input = new BufferedReader(newInputStreamReader(s .getInputStream())); // read line(s) String message = input.readLine(); Log.d("Tcp Demo", "message From Server:" + message); s.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }UDP连接图
UDP服务器端代码:
// UDP服务器监听的端口 Integer port = 12345; // 接收的字节大小,客户端发送的数据不能超过这个大小 byte[] message = new byte[1024]; try { // 建立Socket连接 DatagramSocket datagramSocket = new DatagramSocket(port); DatagramPacket datagramPacket = new DatagramPacket(message, message.length); try { while (true) { // 准备接收数据 datagramSocket.receive(datagramPacket); Log.d("UDP Demo", datagramPacket.getAddress() .getHostAddress().toString() + ":" + new String(datagramPacket.getData())); } } catch (IOException e) { e.printStackTrace(); } } catch (SocketException e) { e.printStackTrace(); }
客户端代码:
public static void send(String message) { message = (message == null ? "Hello IdeasAndroid!" : message); int server_port = 12345; DatagramSocket s = null; try { s = new DatagramSocket(); } catch (SocketException e) { e.printStackTrace(); } InetAddress local = null; try { // 换成服务器端IP local = InetAddress.getByName("localhost"); } catch (UnknownHostException e) { e.printStackTrace(); } int msg_length = message.length(); byte[] messagemessageByte = message.getBytes(); DatagramPacket p = new DatagramPacket(messageByte, msg_length, local, server_port); try { s.send(p); } catch (IOException e) { e.printStackTrace(); } }
0 0
- Android的TCP和UDP传输 简单程序
- Android中实现TCP和UDP传输的方法
- Android如何实现TCP和UDP传输
- Android开发:TCP和UDP传输
- 简单的TCP/UDP程序
- TCP和UDP传输
- 传输协议:TCP和UDP的区别
- 传输层TCP和UDP的区别
- 传输层TCP和UDP的区别
- android 网络传输中UDP和TCP传输
- tcp 和 udp 的区别 ,及 udp 实现可靠传输
- 传输层和TCP、UDP
- 在android中如何使用UDP和TCP传输
- Android开发:如何实现TCP和UDP传输
- Android开发:如何实现TCP和UDP传输
- Android开发:如何实现TCP和UDP传输
- Android开发:如何实现TCP和UDP传输
- Android开发:如何实现TCP和UDP传输
- C51回顾七
- error while loading shared libraries: libevent-1.3.so.1: cannot open shared object file
- Qtcreator 配置 ros工程:debug ros 程序
- iOS开发之Protocol (协议) 和delegate(代理)
- C语言基础——函数
- Android的TCP和UDP传输 简单程序
- 请手动释放你的资源(Please release resources manually)
- 0110 领域模型管理与AOP【高级】
- linux下iftop安装使用
- HTTPS 基本原理
- 三层总结
- sgu 120
- 编程题-最小向量内积-(1)
- 如何实现泛型<T>带参数实例化