用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

柯侧耳倾听者    -  云代码空间

—— 翱翔在Java世界的海洋之上

UDP数据报套接字编程

2017-12-14|846阅||

摘要:一、实验目的 1、理解UDP协议的特点,熟悉客户机与服务器的通信原理。 2、掌握DatagramSocket类和DatagramPacket类的使用以及UDP报文的发送和接收,学会基于UDP数据报套接字的网络程序设计方法


一、实验目的

1、理解UDP协议的特点,熟悉客户机与服务器的通信原理。

2、掌握DatagramSocket类和DatagramPacket类的使用以及UDP报文的发送和接收,学会基于UDP数据报套接字的网络程序设计方法。

 

二、预习内容及要求(要求写出预习内容)

1、掌握不同类型的输入输出流类,标准数据流、文件流、数据输入输出流、对象流等。

2、编程时,应考虑异常处理。

 

三、实验内容、操作过程及实验结果记录

实验题  阅读并运行下列服务器和客户机程序实例,分析其运行结果。要求画出Server和Client的流程图,并画出双方通信的过程。

(1)服务器程序实例源代码:UDPServer.java

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

public class UDPServer {

public static void main(String[] args) throws IOException {

DatagramSocket socket=new DatagramSocket(8800);

byte[] data =new byte[1024];

DatagramPacket packet=new DatagramPacket(data, data.length);

System.out.println("****服务器端已经启动,等待客户端发送数据");

socket.receive(packet);

String info=new String(data, 0, packet.getLength());

System.out.println("我是服务器,客户端说:"+info);

InetAddress address=packet.getAddress();

int port=packet.getPort();

byte[] data2="欢迎您!".getBytes();

DatagramPacket packet2=new DatagramPacket(data2, data2.length, address, port);

socket.send(packet2);

socket.close();

}

}

 

(2)客户机程序实例源代码:UDPClient.java

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;

public class UDPClient {

public static void main(String[] args) throws IOException {

InetAddress address=InetAddress.getByName("localhost");

int port=8800;

byte[] data="用户名:admin;密码:123".getBytes();

DatagramPacket packet=new DatagramPacket(data, data.length, address, port);

DatagramSocket socket=new DatagramSocket();

socket.send(packet);

byte[] data2=new byte[1024];

DatagramPacket packet2=new DatagramPacket(data2, data2.length);

socket.receive(packet2);

String reply=new String(data2, 0, packet2.getLength());

System.out.println("我是客户端,服务器说:"+reply);

socket.close();

}

}

 

 

 

 

四、实验过程中所遇问题思考与讨论(可写个人体会,或相关理论知识,根据个人具体情况选做)

通过这次的学习与实验,我初步掌握了网络编程中UDP数据报套接字编程的一些用法和问题,也更加了解了网络编程中UDP数据报套接字编程的概念,为今后更好的学习网络编程做好铺垫,在学习的过程中,我更加深刻的体会到与老师和同学间的交流与合作是多么的重要,所以在今后的学习与实验当中,要善于发现问题,更要及时与老师反馈问题所在,并与老师和同学交流学习经验,共同解决问题,这样才能更好的学好网络编程。

 

    

顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: 柯侧耳倾听者
    • 等级: 初级设计师
    • 积分: 2220
    • 代码: 64 个
    • 文章: 64 篇
    • 随想: 5 条
    • 访问: 43 次
    • 关注

    标签

    最新提问

      站长推荐