第十六周java作业
来源:互联网 发布:福特基金会 知乎 编辑:程序博客网 时间:2024/06/05 06:08
1. 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
UDPReceiveTest .java
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UDPReceiveTest { /* * 1. 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。 */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub byte[] buf = new byte[1024]; DatagramSocket ds = new DatagramSocket(8001); DatagramPacket dp = new DatagramPacket(buf, 1024); System.out.println("等待接收数据"); ds.receive(dp); String str = new String(dp.getData(), 0, dp.getLength()) + "from " + dp.getAddress().getHostAddress() + ": " + dp.getPort(); System.out.println(str); ds.close(); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
UDPSendTest.java
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPSendTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub DatagramSocket ds = new DatagramSocket(3000); String str = "Hello,world"; DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"),8001); System.out.println("发送信息"); ds.send(dp); ds.close(); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
2. 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
TCPReceiveTest.java
import java.io.IOException;import java.io.InputStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;public class TCPReceiveTest { /* * 2. 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”, * 客户端收到数据后打印输出。 */ public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub new TCPClient().connect(); }}class TCPClient{ private static final int PORT = 8002; public void connect() throws UnknownHostException, IOException{ Socket client = new Socket(InetAddress.getLocalHost(), PORT); InputStream is = client.getInputStream(); byte[] buf = new byte[1024]; int len = is.read(buf); System.out.println(new String(buf, 0, len)); client.close(); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
TCPSendTest.java
import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class TCPSendTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub new TCPServer().listen(); }}class TCPServer{ private static final int PORT = 8002; public void listen() throws IOException{ ServerSocket serverSocket = new ServerSocket(PORT); Socket client = serverSocket.accept(); OutputStream os = client.getOutputStream(); System.out.println("开始与客户端交互数据"); String str = "Hello,world"; os.write(str.getBytes()); System.out.println("结束与客户端交互数据"); os.close(); client.close(); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
运行截图:(两个作业的合在一起了)
这里因为eclipse中只有一个控制台窗口,而发送端与接收端又分属两个文件所以不好查看运行的结果,还是在cmd下用javac、java命令运行的好,这里需要注意,你可能javac命令没问题,但是java命令一直提示找不到主类。
原因是你的.java文件在项目中创建时存在于某个包下,而java命令下有包和无包是不太一样的,具体自己百度去,最简单的方法是把.java文件中的package语句删掉,然后根据自己学的java命令使用方式就可以正常的运行看到结果了
另外发送端和接收端要分别在两个把不同的cmd下
阅读全文
0 0
- 第十六周java作业
- 第十六周Java作业
- 12.13第十六周Java作业
- 第十六周java作业--网络编程
- 第十六周作业 1.0
- 第十六周作业 2.0
- 第十六周作业 1
- 第十六周作业 2
- 第十六周作业1
- 第十六周作业2
- 第十六周作业3
- 第十六周作业
- 第十六周作业任务一
- 算法第十六周作业01
- 第十六周作业:网络编程
- 算法作业_26(2017.6.6第十六周)
- 算法作业_27(2017.6.8第十六周)
- 算法作业_28(2017.6.8第十六周)
- HDU1811Rank of Tetris 拓扑排序+并查集
- 政府安全资讯精选 2017年第十七期 全国各地开展打击整治网络侵犯公民个人信息犯罪专项行动;中共中央办公厅、国务院办公厅印发计划 IPv6规模部署提上日程
- 谷歌浏览器按F12调试js代码的时候找不到代码在哪
- 解决Spring中singleton中注入prototype Bean的问题
- ubuntu 安装jupyter
- 第十六周java作业
- numpy.asarray: 转输入为数组
- android之带右侧字母(拼音)索引的列表
- 高精度单目结构光三维重建
- Chrome 插件下载、安装、加载正在开发的扩展程序和打包扩展程序
- Pygame 学习笔记(4)
- linux里面的$是什么意思?
- 【CC2640R2F】香瓜CC2640R2F之连接参数
- 欢迎使用CSDN-markdown编辑器