UDP编程步骤
发送端
1、创建一个DatagramSocket
2、准备发送的数据,并且打包 DatagramPacket
要指定:发送的数据,长度,接收方的IP,接收方的端口号
3、通过DatagramSocket的send(数据报)
4、关闭
接收端
1、创建一个DatagramSocket 要指定 监听的端口号
2、准备一个DatagramPacket,用来接收数据 要指定装数据一个字节数组,以及长度
3、通过DatagramSocket的receive(数据报)
4、拆解数据
通过DatagramPacket对象.getData()数据,DatagramPacket对象.getLength()实际接收的数据长度
5、关闭
//示例代码 package com.atguigu.udp; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import org.junit.Test; /* * UDP:非面向连接的 * * 有发送端和接收端两个应用程序 */ public class TestUDP { @Test public void send()throws Exception{ //1、创建Socket DatagramSocket ds = new DatagramSocket(); //2、把数据打包成一个数据报,包 String str = "双十二购物快乐"; byte[] bytes = str.getBytes(); InetAddress ip = InetAddress.getByName("192.168.24.71"); DatagramPacket dp = new DatagramPacket(bytes, bytes.length, ip,8989); //3、通过socket发送出去 ds.send(dp); System.out.println("发送完毕"); //4、释放资源 ds.close(); } @Test public void reveive()throws Exception{ //1、创建Socket DatagramSocket ds = new DatagramSocket(8989);//为它指定一个端口号,在端口号一直监听着 //2、先创建一个数据报等着 byte[] data = new byte[1024]; DatagramPacket dp = new DatagramPacket(data, data.length); //3、准备接受数据,从socket中接收数据,如果此时没有数据,这句代码会阻塞 ds.receive(dp); //4、拆出数据 String str = new String(dp.getData(),0,dp.getLength()); System.out.println("收到的数据是:" + str); //5、关闭 ds.close(); } }
URL编程
在TCP的基础上
服务器端 Web服务器
客户端
1、创建URL的对象 URL url = new URL(网址);
网址:协议://主机名:端口号/文件路径名?参数名=参数值&参数名=参数值...
例如:http://localhost:8080/1108web/index.html
例如:http://localhost:8080/1108web/login?username=xx&password=xx
2、与服务器建立连接
InputStream is = url.openStream();
这种方式只能使用get方法与服务器进行通信
如果要给服务器传参数只能在网址后面通过?参数名=参数值&参数名=参数值...
HttpURLConnection tc = (HttpURLConnection)url.openConnection();
这种方式可以使用post方法与服务器进行通信
如果要给服务器传数据,那么需要hc.setDoOutput(true);
然后用OutputStream进行发送数据
3、处理接收到数据
//示例一 package com.atguigu.url; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; /* * tomcat:是一个服务器 * 浏览器:客户端 */ public class TestURL { public static void main(String[] args) throws Exception{ //自定义客户端 URL url = new URL("http://192.168.24.71:8080/1108JavaWeb/index.html"); /*System.out.println("协议:" + url.getProtocol()); System.out.println("主机名:" + url.getHost()); System.out.println("端口号:" + url.getPort()); System.out.println("路径名:" + url.getPath());*/ InputStream input = url.openStream(); InputStreamReader isr = new InputStreamReader(input); BufferedReader br = new BufferedReader(isr); String str ; while((str=br.readLine())!=null){ System.out.println(str); } } }
//示例二:get package com.atguigu.url; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; public class TestURL2 { public static void main(String[] args) throws Exception{ URL url = new URL("http://192.168.24.71:8080/myweb/login?username=admin&pass=123"); InputStream input = url.openStream(); InputStreamReader isr = new InputStreamReader(input); BufferedReader br = new BufferedReader(isr); String str ; while((str=br.readLine())!=null){ System.out.println(str); } } }
//示例三:post package com.atguigu.url; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.HttpURLConnection; import java.net.URL; public class TestURL3 { public static void main(String[] args) throws Exception{ URL url = new URL("http://192.168.24.71:8080/myweb/login"); HttpURLConnection hc = (HttpURLConnection) url.openConnection(); hc.setDoOutput(true); OutputStream output = hc.getOutputStream(); PrintStream ps = new PrintStream(output); // output.write("username=chai&pass=123".getBytes()); ps.println("username=chai&pass=123"); InputStream input = hc.getInputStream(); InputStreamReader isr = new InputStreamReader(input); BufferedReader br = new BufferedReader(isr); String str ; while((str=br.readLine())!=null){ System.out.println(str); } } }标签:java,url,编程,网络,URL,str,new,import From: https://www.cnblogs.com/woniupa/p/17185451.html