十.TCP与UDP发送和接收数据的简单实现
2012-02-09 13:26
471 查看
一.在android里实现网络通讯会用到如下的网络操作权限。
二.在服务端创建一个TCP连接的监听。用于接收TCP客户端传输的数据。
三.创建一个TCP客户端,用于发送数据。
四.在服务端创建一个UDP的监听,用于接收UDP连接的数据接收
五.创建一个UDP客户端,用于发送数据。
六.TCP使用的是流的方式发送,UDP是以包的形式发送。
<!--允许应用程序改变网络状态--> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <!--允许应用程序改变WIFI连接状态--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <!--允许应用程序访问有关的网络信息--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!--允许应用程序访问WIFI网卡的网络信息--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <!--允许应用程序完全使用网络--> <uses-permission android:name="android.permission.INTERNET"/>
二.在服务端创建一个TCP连接的监听。用于接收TCP客户端传输的数据。
//在logcat中打印提示,开始监听TCP System.out.println("Accpet TCP"); //创建ServerSocket对象,并设置端口号 ServerSocket serverSocket = new ServerSocket(1984); //使用ServerSocket中的accpet方法开始阻塞监听1984端口 Socket socket = serverSocket.accept(); //创建InputStream对象,并从socket中获取数据 InputStream inputStream = socket.getInputStream(); //创建一个字节数组,存放读取到得数据。 byte buffer[] = new byte[1024*4]; int temp = 0; while ((temp = inputStream.read(buffer)) != -1) { System.out.println(new String(buffer ,0 ,temp)); }
三.创建一个TCP客户端,用于发送数据。
//创建一个Socket对象,并指定服务端的IP及端口号 Socket socket = new Socket("192.168.1.32" ,1984); //创建一个InputStream用户读取要发送的文件。 InputStream inputStream = new FileInputStream("e://a.txt"); //获取Socket的OutputStream对象用于发送数据。 OutputStream outputStream = socket.getOutputStream(); //创建一个byte类型的buffer字节数组,用于存放读取的本地文件 byte buffer[] = new byte[4*1024]; int temp = 0; //循环读取文件 while ((temp = inputStream.read(buffer)) != -1) { //把数据写入到OuputStream对象中 outputStream.write(buffer ,0 ,temp); } //发送读取的数据到服务端 outputStream.flush();
四.在服务端创建一个UDP的监听,用于接收UDP连接的数据接收
//打印一个提示 System.out.println("accpet UDP"); //创建一个DatagramSocket对象,并指定监听端口。(UDP使用DatagramSocket) DatagramSocket socket = new DatagramSocket(1985); //创建一个byte类型的数组,用于存放接收到得数据 byte data[] = new byte[4*1024]; //创建一个DatagramPacket对象,并指定DatagramPacket对象的大小 DatagramPacket packet = new DatagramPacket(data,data.length); //读取接收到得数据 socket.receive(packet); //把客户端发送的数据转换为字符串。 //使用三个参数的String方法。参数一:数据包 参数二:起始位置 参数三:数据包长 String result = new String(packet.getData(),packet.getOffset() ,packet.getLength()); //打印读取到得数据 System.out.println("UDP Data:" + result);
五.创建一个UDP客户端,用于发送数据。
//创建DatagramSocket对象并指定服务端的端口号 DatagramSocket socket = new DatagramSocket(1985); //创建一个Inet4Address对象 //需要使用Inet4Address.getByName把IP地址转换为网络地址 //有些java版本可以使用InetAddress Inet4Address serverAddress = (Inet4Address) Inet4Address.getByName("192.168.1.32"); //设置要发送的字符串, String str = "hello psuaije"; //把字符串str字符串转换为字节数组 byte data[] = str.getBytes(); //创建一个DatagramPacket对象,用于发送数据。 //参数一:要发送的数据 参数二:数据的长度 参数三:服务端的网络地址 参数四:网络地址 DatagramPacket packet = new DatagramPacket(data, data.length ,serverAddress ,1985); //把数据发送到服务端。 socket.send(packet); 1
六.TCP使用的是流的方式发送,UDP是以包的形式发送。
相关文章推荐
- UDP和TCP通信机制(实现简单的数据发送与接收)
- UDP客户端实现在不同端口上发送和接收数据
- Java基础——实现UDP发送数据和接收数据
- iOS学习笔记4-GCDAsyncUdpSocket的使用(实现异步发送接收数据)
- 使用UDP发送数据简单实现
- 简单socket服务(三)实现多客户端向服务器发送数据并保证服务器接收到数据
- C# WinForm实现UDP发送和接收数据
- UDP利用多线程实现数据的发送和接收
- 简单实现udp网络程序发送,接受数据
- Android手机实现同一端口发送和接收UDP数据
- 数据报实现简单的客户端发送数据,服务端接收数据
- java Udp实现简单地发送接收信息
- Linux下UDP的组播接收和发送的简单例子
- UdpSocket如何实现通过代理接收多包数据
- 【Y忍冬草】Qt之客户端实现数据的接收和发送
- 浅析nodejs实现Websocket的数据接收与发送
- java socket UDP协议收发数据简单实现通信示例
- 发送UDP广播并接收数据
- 浅析nodejs实现Websocket的数据接收与发送
- udp协议的数据接收与发送的代码 分类: VC++ 网络基础 2014-02-25 08:15 700人阅读 评论(0) 收藏