UDP传输发送端
package work.net; import java.io.IOException; import java.net.*; /** * Created by coolkid on 2014/12/17 0017. */ public class UDPSendDemo { public static void main(String[] args) throws IOException { System.out.println("发送端启动..."); /** * 创建UDP发送端 * 1 - 建立UDP的socket服务 * 2 - 将要发送的数据封装到数据包中 * 3 - 通过UDP的socket服务发送数据包 * 4 - 关闭socket服务 * */ // 1 - 建立UDP的socket服务 DatagramSocket ds = new DatagramSocket(); // 2 - 将要发送的数据封装到数据包中 String str = "UDP传输演示:I'am Comming"; byte[] buf = str.getBytes(); //字节数组,长度,ip对象,端口 DatagramPacket dp = new DatagramPacket(buf,buf.length, InetAddress.getByName("192.168.1.103"),10000); // 3 ds.send(dp); // 4 ds.close(); } }
UDP传输接收端
package work.net; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * Created by coolkid on 2014/12/17 0017. */ public class UDPReceDemo { public static void main(String[] args) throws IOException { System.out.println("接收端启动..."); /** * 建立UDP接收端 * 1 - 建立udp socket服务 * 2 - 创建数据包,用于存储接收到的数据,方便用数据包的方法解析这些数据 * 3 - 用socket服务的receivce方法将接收到的数据存储到数据包中 * 4 - 通过数据包的方法解析数据包中的内容 * 5 - 关闭资源 */ // 1 注意指明端口 DatagramSocket ds = new DatagramSocket(10000); // 2 byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); // 3 ds.receive(dp); // 4 String ip = dp.getAddress().getHostAddress(); int port = dp.getPort(); String text = new String(dp.getData(),0,buf.length); System.out.println(ip+":"+port+":"+text); } }
TCP传输客户端
package work.net; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; /** * Created by coolkid on 2014/12/19 0019. */ public class TCPClientDemo { public static void main(String[] args) throws IOException { /** * TCP传输 客户端建立过程 * 1 - 创建TCP客户端Socket服务 * 建议创建对象的时候就明确连接主机 * 2 - 如果连接成功,说明数据传输通道已建立 * 这个通道其实就是个流 - socket流,网络IO流,是底层建立好的,既有输入,也有输出 * 想要输入或输出流对象,可以找Socket获取,getInputStream与getOutputStream * 3 - 使用输出流,将数据写出 * 4 - 关闭资源 */ // 1 Socket socket = new Socket("192.168.1.105",10002); // 2 OutputStream outputStream = socket.getOutputStream(); // 3 outputStream.write("TCP演示:哥们又来了..".getBytes()); // 4 socket.close(); } }
TCP传输服务端
package work.net; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /** * Created by coolkid on 2014/12/19 0019. */ public class TCPServerDemo { public static void main(String[] args) throws IOException { /** * 建立TCP服务端 * 1 - 创建服务端Socket服务,用ServerSocket对象 * 2 - 服务端必须对外提供端口,否则客户端无法连接 * 3 - 获取连接过来的客户端对象 * 4 - 通过客户端对象获取socket流,读取数据 * 5 - 关闭资源 * 关客户端、服务端 */ // 1 ServerSocket serverSocket = new ServerSocket(10002); // 3 获取客户端对象 Socket socket = serverSocket.accept(); // 4 InputStream inputStream = socket.getInputStream(); byte[] bytes = new byte[1024]; int len = inputStream.read(bytes); String text = new String(bytes,0,len); System.out.println(socket.getInetAddress().getHostAddress()+":"+text); socket.close(); serverSocket.close();//一般服务端不关 } }