Android的TCP和UDP传输 简单程序

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();
            }
        } 
时间: 2024-10-07 18:39:13

Android的TCP和UDP传输 简单程序的相关文章

Android中实现TCP和UDP传输实例

TCP和UDP在网络传输中非常重要,在Android开发中同样重要. 首先我们来看一下什么是TCP和UDP. 什么是TCP? TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的.可靠的.基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified).在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能.应用层向TCP层发送用于网间传输的.用8位字节表示的数据流,然后TCP

Android开发:如何实现TCP和UDP传输

TCP和UDP在网络传输中非常重要,在Android开发中同样重要. 首先来看一下什么是TCP和UDP. 什么是TCP? TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的.可靠的.基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified).在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能.应用层向TCP层发送用于网间传输的.用8位字节表示的数据流,然后TCP把数

JAVA中TCP和UDP传输例子的对比

在本文中我将学到的java中的UDP和TCP在局域网内的传输做了对比,这里强调 的是局域网范围内,非广域网.首先,下面的是我写的在局域网内利用java中的UDP协议写的一个传输文件或者图片的类. --------------------------------------------------------------------------------------------------------------------------------------------------------

【java】TCP和UDP传输协议

TCP协议和UDP协议的比较 TCP的全称是Transmission Control Protocol (传输控制协议) 传输控制协议,是一种面向连接的协议,类似打电话 在通信的整个过程中保持连接 保证了数据传递的可靠性和有序性 是一种全双工的字节流通信方式 服务器压力比较大,资源消耗比较快,发送数据效率比较低 UDP是User Datagram Protocol(用户数据报协议) 用户数据报协议,是一种非面向连接的协议,类似写信 在通信的整个过程中不需要保持连接 不保证数据传输的可靠性和有序性

通信协议:HTTP、TCP、UDP

转载地址:http://blog.jobbole.com/84429/ TCP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DN

TCP、UDP、HTTP、SOCKET

TCP HTTP UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则"说话",对方才能理解或为之服务. TCP/IP代表传输控制协议/网际协议,指的是一系列协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等. TCP和UDP是FTP,HTTP和SMTP之类使用

通信协议:HTTP、TCP、UDP(转)

原文出处: 碧雪轩的博客 TCP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 因此,HTTP本身就是一个协议,是

通信协议——HTTP、TCP、UDP

TCP   HTTP   UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则"说话",对方才能理解或为之服务. TCP   HTTP   UDP三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP.HTTP.TELNET.SMTP.DNS等协议. 因此,HTTP本身就是一个协议,是从Web服务器传

TCP和UDP并实现socket的简单通信

一.TCP和UDP的区别和联系 1.五层协议体系结构和OSI七层的体系结构 2.五层协议体系结构 2.1应用层(超文本传输协议)(文件传输)(远程登录)(网络管理)(域名系统)HTTP/TFTP/TELNET/SNMP/DNS 如何通过应用进程间的交互来完成特定网络应用,是应用进程间的通信和交互规则. 2.2运输层 负责向两台主机之间提供通用的数据传输服务,应用层利用这一层的传输服务,传输应用层的报文. 2.3网络层(Internet协议)(控制信息协议)(地址/反地址解析协议)IP/ICMP/