文档章节

<Java 网络基础知识>学习日志(四)——基于UDP的socket实现

WhuBit
 WhuBit
发布于 2016/11/19 23:20
字数 324
阅读 2
收藏 0
package 网络基础知识;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UDPServerSocket {
	/*
	 * 2016/11/19
	 * 基于UDP的Socket
	 */

	public static void main(String[] args) {
		//1.创建DatagramSocket,指定端口号
		DatagramSocket socket;
		try {
			socket = new DatagramSocket(8888);
			//2.创建DatagramPacket
			byte[] bytes=new byte[1024];//创建字节数组
			DatagramPacket dp=new DatagramPacket(bytes, bytes.length);
			//3.接收客户端发送的数据信息
			socket.receive(dp);//此方法在接受到数据报之前会一直阻塞
			//4.读取数据
			String info=new String(bytes,0,dp.getLength());
			System.out.println("我是服务器,客户端说:"+info);
			
			//向客户端响应信息
			InetAddress address=dp.getAddress();
			int port=dp.getPort();
			byte[] data="欢迎您".getBytes();
			DatagramPacket packet=new DatagramPacket(data, data.length, address, port);
			socket.send(packet);
			socket.close();
		} catch (SocketException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		 catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		

	}

}

package 网络基础知识;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Arrays;

public class UDPClientSocket {
	/*
	 * 2016/11/19
	 * 基于UDP的Socket
	 */

	public static void main(String[] args) throws SocketException, UnknownHostException {
		//1.定义发送信息
		try {
			InetAddress address=InetAddress.getByName("localhost");
			int port=8888;
			byte[] data="用户名:SYX;密码:999999".getBytes();
			//2.创建DatagramPacket,包含要发送的对象
			DatagramPacket dp=new DatagramPacket(data, data.length, address, port);
			//3.创建datagramSocket
			DatagramSocket socket=new DatagramSocket();
			//4.发送数据
			socket.send(dp);
			
			byte[] bytes=new byte[1024];
			DatagramPacket packet=new DatagramPacket(bytes, bytes.length);
			socket.receive(packet);
			System.out.println("我是客户端,服务器说:"+new String(bytes,0,packet.getLength()));
			socket.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}

© 著作权归作者所有

共有 人打赏支持
WhuBit
粉丝 1
博文 12
码字总数 4328
作品 0
武汉
私信 提问
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0
架构师必备技能之Netty 高并发 UTS 项目实战

一、Netty Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基...

A尚学堂Nancy老师
08/27
0
0
JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52723439 JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议...

Aduroidpc
2016/10/02
0
0
Java Socket编程----通信是这样炼成的

Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术...

浮躁的码农
2017/11/07
0
0
JAVA基础再回首(二十九)——TCP传输、上传文件、上传图片、多并发上传

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724684 JAVA基础再回首(二十九)——TCP传输、上传文件、上传图片、多并发上传 ...

Aduroidpc
2016/10/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
今天
1
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
3
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
5
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部