java-网络编程Lesson1

作业:
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();   
    }

}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值