无连接通信 UDP
客户端
package com.swift.test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; /*使用UDP通信编写一个Java程序.要求:获取键盘输入的内容.发送到服务端.服务端接收后.在控制台上打印接收到的内容 客戶端 1.创建键盘录入对象.获取键盘录入数据 2.创建DatagramSocket对象 3.创建DatagramPacket对象.并封装键盘录入的数据 4.发送数据 5.释放流资源 服務端 1.创建DatagramSocket对象 2.创建DatagramPacket对象 3.接收数据存储到DatagramPacket对象中 4.获取DatagramPacket对象的内容 5.在控制台上打印接收到的内容 6.释放流资源 */ public class DemoUDPClient { public static void main(String[] args) throws IOException { Scanner scan=new Scanner(System.in); System.out.println("请输入要传达的内容:"); String str=scan.nextLine(); DatagramSocket datagramSocket=new DatagramSocket(); byte[] buf=str.getBytes(); DatagramPacket datagramPacket=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.105.22"),6464); datagramSocket.send(datagramPacket); datagramSocket.close(); } }
服务端
package com.swift.test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /*使用UDP通信编写一个Java程序.要求:获取键盘输入的内容.发送到服务端.服务端接收后.在控制台上打印接收到的内容 客戶端 1.创建键盘录入对象.获取键盘录入数据 2.创建DatagramSocket对象 3.创建DatagramPacket对象.并封装键盘录入的数据 4.发送数据 5.释放流资源 服務端 1.创建DatagramSocket对象 2.创建DatagramPacket对象 3.接收数据存储到DatagramPacket对象中 4.获取DatagramPacket对象的内容 5.在控制台上打印接收到的内容 6.释放流资源 */ public class DemoUDPServer { public static void main(String[] args) throws IOException { DatagramSocket datagramSocket=new DatagramSocket(6464); InetAddress ip=InetAddress.getLocalHost(); String ipString=ip.getHostAddress(); String nameString=ip.getHostName(); System.out.println(ipString+" "+nameString); byte[] buf=new byte[1024]; DatagramPacket datagramPacket=new DatagramPacket(buf,1024); datagramSocket.receive(datagramPacket); System.out.println(new String(buf)); datagramSocket.close(); } }
结果
有连接通信TCP
客户端
package com.swift.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; /*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台 ?客户端 1.创建客户端的Socket对象 2.获取Socket的输出流对象 3.写数据给服务器 4.获取Socket的输入流对象 5.使用输入流,读反馈信息 6.关闭流资源 */ public class DemoTCPClient { public static void main(String[] args) throws IOException { Socket s=new Socket(InetAddress.getByName("10.254.3.116"),8888); OutputStream out=s.getOutputStream(); byte[] buf="我是客户端".getBytes(); out.write(buf); InputStream in=s.getInputStream(); byte[] bytes=new byte[128]; in.read(bytes); System.out.println(new String(bytes)); s.close(); } }
服务端
package com.swift.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; /*使用socket编写一个Java程序,要求:客户端发送内容“我是客户端”到服务端,服务端接收后,在控制台上打印接收到的内容,并返回内容“我来自服务端”到客户端,客户端接收服务端的发送的内容后将接收内容打印在控制台 ?服务器端 1.创建服务器端ServerSocket对象,指定服务器端端口号 2.开启服务器,等待着客户端Socket对象的连接,如有客户端连接,返回客户端的Socket对象 3.通过客户端的Socket对象,获取客户端的输入流,为了实现获取客户端发来的数据 4.通过客户端的输入流,获取流中的数据 5.通过客户端的Socket对象,获取客户端的输出流,为了实现给客户端反馈信息 6.通过客户端的输出流,写数据到流中 7.关闭流资源*/ public class DemoTCPServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket=new ServerSocket(8888); InetAddress ip=InetAddress.getLocalHost(); System.out.println(ip.getHostAddress()); Socket s=serverSocket.accept(); InputStream in=s.getInputStream(); byte[] buf=new byte[128]; in.read(buf); System.out.println(new String(buf)); OutputStream out=s.getOutputStream(); out.write("我来自服务端".getBytes()); serverSocket.close(); s.close(); } }
原文地址:https://www.cnblogs.com/qingyundian/p/8537471.html
时间: 2024-10-08 06:57:29