java-网络编程Lesson1

来源:互联网 发布:万国数据fm经理待遇 编辑:程序博客网 时间:2024/04/25 22:12

作业:
1. 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。

package udp;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPSend {    public static void main(String[] args) throws Exception {        //创建 DatagramSocket对象        DatagramSocket ds = new DatagramSocket(3000);          String str = "hello world";//要发送的数据        //创建一个要发送的数据包,包括数据的内容、长度、发送的IP地址和端口号        DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(),                  InetAddress.getByName("localhost"), 8001);          System.out.println("发送信息");        ds.send(dp); //发送信息        ds.close(); //释放资源    }}
package udp;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPReceiver {    public static void main(String[] args) throws Exception {        //创建一个长度为1024的字节数组,用于接收数据        byte[] buf = new byte[1024];         //创建一个DatagramSocket对象,监听端口号为8001        DatagramSocket ds = new DatagramSocket(8001);         //创建一个DatagramPacket对象,用于接受数据        DatagramPacket dp = new DatagramPacket(buf, 1024);        System.out.println("等待接收数据");        //等待接收数据,如果没有数据则会阻塞        ds.receive(dp);         //调用DatagramPacket的方法接收到的信息,包括数据的内容、长度、发送的IP地址和端口号        String str = new String(dp.getData(),0, dp.getLength());          System.out.println(str); //打印接收到的信息         ds.close(); //释放资源    }}

这里写图片描述
2. 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。

package tcp;import java.io.*;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {    public static void main(String[] args) throws Exception{        //创建ServerSocket对象,端口号为8002        ServerSocket serverSocket = new ServerSocket(8002);          //调用accept()方法等待客户端连接,当与客户端连接后,调用Socket的getOutputStream()方法获得输出流对象,输出“hello world。        Socket client = serverSocket.accept();         //获取客户端的输出流        OutputStream os = client.getOutputStream();          os.write(("hello world").getBytes());          os.close();          client.close();          }}
package tcp;import java.io.*;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;public class TCPClient {    public static void main(String[] args) throws UnknownHostException, IOException {        byte[] buf = new byte[1024];//创建一个长度为1024的字节数组,用于接收数据        //指定服务器的IP地址和监听端口号,与服务器端建立连接后        Socket client = new Socket(InetAddress.getLocalHost(), 8002);        //调用Socket的getInputStream()方法获得输入流对象,读取数据,并打印出来        InputStream is = client.getInputStream();               int len = is.read(buf);          System.out.println(new String(buf, 0, len));         client.close();       }}

这里写图片描述
这里写图片描述