`
lfc_jack
  • 浏览: 144778 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

基于UDP协议的Socket编程

阅读更多
TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的。主要需要关注的还是TCP/IP协议的socket编程

下面是基于UDP协议写的客户端与服务端实现通信的代码。

第一步:写一个java project,一个client  一个Server





第二步骤:编写服务器端的代码如下:

package com.udp.socket.server;

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

/**
 * 基于DUP协议的服务器端的代码
 * @author lfc
 *
 */
public class server {

	public static void main(String[] args) {
		try {
			// 1,创建服务器端,绑定端口
			DatagramSocket ds=new DatagramSocket(8800);
			// 2,确定接收数据包的数据的大小
			byte[] by=new byte[1024];
			// 3,创建接收数据包的数据类型,数据存储在数组中
			DatagramPacket dp=new DatagramPacket(by, by.length);
			// 4,通过套字节接收数据
			ds.receive(dp);
			// 5,解析客户端发送过来的数据
			String string=new String(by,0,dp.getLength());
			//打印来自客户端的信息		
			System.out.println("客户端发送过来的信息是:"+string);
			//当收到客户端发送过来的信息后,服务器端自动回答一个信息
			String hello="hello!";
			byte[] reply=hello.getBytes();
			//获取发送信息过来的客户端的ip地址
			SocketAddress sa=dp.getSocketAddress();
			//数据放入数据包中准备发送给客户端,三个参数,发送的内容,长度,以及客户端的ip地址
			DatagramPacket dp2=new DatagramPacket(reply,reply.length,sa);
			//发送给客户响应信息开始
			ds.send(dp2);
			// 6,关闭资源
			ds.close();
		} catch (SocketException e) {
			
			e.printStackTrace();
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		
		

	}

}



第三步,编写客户端的代码如下:

package com.udp.socket.client;

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



/**
 * 基于UDP协议的客户端代码
 * 
 * @author lfc
 * 
 */
public class client {

	public static void main(String[] args) {
		
		// 1,创建客户端,确定发送到服务器端的ip以及端口
		String info="你好,在吗?";
		byte[] by=info.getBytes();
		InetAddress ia=null;
		try {
			ia=InetAddress.getByName("localhost");
		} catch (UnknownHostException e) {
			
			e.printStackTrace();
		}
		// 2,创建数据包,指定数据包的长度并且发送到服务器ip的指定端口
		int port=8800;
		DatagramPacket dp=new DatagramPacket(by, by.length,ia,port);
		// 3,创建DatagramSocket对象
		DatagramSocket ds=null;
		try {
			 ds=new DatagramSocket();
		} catch (SocketException e) {
			
			e.printStackTrace();
		}
		// 4,向服务器发送数据包
		try {
			ds.send(dp);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		byte[] receive=new byte[1024];
	   //客户端创建接收数据包的数据类型,数据存储在数组中
		DatagramPacket dpre=new DatagramPacket(receive, receive.length);
		// 客户端通过套字节接收数据
		try {
			ds.receive(dpre);
		} catch (IOException e) {
			
			e.printStackTrace();
		} 
		//输出服务器给客户端的响应信息
		String string=new String(receive,0,receive.length);
		System.out.println("服务器响应的信息是:"+string);
		// 5,关闭资源
		ds.close();
		
	}

}



第四步:运行服务器端的代码,控制台显示处于监听状态:结果如下图





第五步,运行客户端的代码,此时服务端收到客户端发送过来的信息:




我们再去查看客户端的控制台,发现控制台输出服务器端发送过来的响应信息:





  • 大小: 9.4 KB
  • 大小: 6.9 KB
  • 大小: 11.4 KB
  • 大小: 10.6 KB
分享到:
评论
1 楼 魏叔武 2016-10-28  

相关推荐

    网络编程之基于UDP的Socket编程

    基于UDP的Socket编程 网络编程中的Socket编程是指在应用程序中使用操作系统提供的网络编程接口来实现网络通信的过程。在 Socket 编程中,存在两种主要的协议:TCP 和 UDP。其中,TCP 协议是一种面向连接的可靠通信...

    基于UDP的Socket编程

    **基于UDP的Socket编程** UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于需要快速传输但对数据完整性要求不高的应用,如在线游戏、实时音频和视频流等。与TCP(Transmission Control ...

    基于udp的socket编程实例

    在IT领域,网络编程是不可或缺的一部分,而基于UDP(User Datagram Protocol)的Socket编程是其中一种常见的技术。UDP是一种无连接、不可靠的传输协议,适用于实时数据传输或对速度有较高要求的应用场景。本实例将...

    基于IP UDP协议的socket编程

    本文将详细讲解基于IP UDP协议的Socket编程,帮助你理解如何使用UDP套接字进行数据发送与接收。 UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的传输层协议,它的主要特点是速度快、开销小,...

    基于UDP的socket程序,多线程操作,windows下C语言

    本文详细介绍了如何使用C语言在Windows环境下编写一个基于UDP协议的Socket程序,支持多线程并发处理。通过对核心知识点的分析,读者可以更好地理解UDP Socket编程的基本原理和技术细节,从而为开发类似的网络应用...

    socket网络(UDP协议编程)

    "socket网络(UDP协议编程)"这个标题明确指出了我们要讨论的核心内容——使用套接字(socket)进行网络编程,并且聚焦在用户数据报协议(UDP)上。UDP是一种无连接的、不可靠的传输层协议,与TCP(传输控制协议)...

    基于UDP协议的Socket网络编程模式的实现

    ### 基于UDP协议的Socket网络编程模式的实现 #### 概述 在计算机网络领域,Socket是一种用于网络通信的编程接口,它允许不同计算机系统之间通过TCP/IP等网络协议进行数据交换。本文主要探讨的是基于UDP协议的...

    基于UDP和TCP协议的Socket(网络编程/套接字)案例

    以上是对基于UDP和TCP协议的Java Socket编程的基本介绍。实际应用中,还需要考虑异常处理、多线程、数据编码解码等问题,以确保程序的健壮性和可维护性。通过深入理解并实践这些示例,开发者可以更好地掌握网络编程...

    windows平台下基于UDP的socket编程

    在Windows平台上进行基于UDP的Socket编程,主要是利用Winsock库来实现进程间的网络通信。UDP(User Datagram Protocol)是一种无连接、不可靠的传输层协议,适用于需要快速发送数据且对数据完整性要求不高的场景。...

    UDP协议通信socket编程(物联网).rar

    调研http协议、TCP协议、UDP协议及socket编程相关知识;根据课程设计要求,选择合适的操作系统、开发环境及测试环境 必需有界面窗口,客户端可以实现网址的录入,协议的选择(TCP或返回信息的显示。服务器端要有...

    tcp/udp socket编程

    基于TCP协议的Socket编程 ① 创建TCP服务端步骤: a) 创建一个ServerSocket对象 b) 调用accept()方法接受客户端请求 c) 从Socket中获取I/O流 d) 对I/O流进行读写操作,完成与客户端的交互 e) 关闭I/O流和...

    基于UDP协议的简易聊天机器人

    详细详细内容请查看我的博客

    多进程多人聊天室,运用udp协议socket网络编程

    本项目“多进程多人聊天室,运用udp协议socket网络编程”就是基于UDP的socket编程实现了一个支持多人聊天的平台,管理员还具有群发消息的能力。下面将详细解释这个项目所涉及的知识点。 首先,我们需要理解**UDP...

    基于Udp的五子棋对战游戏

    目标是通过UDP协议,让在同一局域网内的玩家能够实时地进行五子棋的对战。 二、UDP通信技术 UDP(User Datagram Protocol)是一种无连接的传输层协议,它比TCP(Transmission Control Protocol)更为轻量级,适合于...

    基于UDP协议的聊天工具

    【基于UDP协议的聊天工具】是一款使用C#编程语言实现的通信软件,它利用了用户数据报协议(UDP)来实现实时的数据传输。UDP是一种无连接的、不可靠的传输协议,它在互联网协议栈中位于传输层,相较于TCP协议,它的...

    基于UDP协议的聊天系统

    总的来说,基于UDP的聊天系统利用了VB的Socket控件实现快速、简单的网络通信。尽管它缺乏TCP的可靠性保证,但这种牺牲在需要高效传输的实时应用中是可以接受的。通过理解UDP的工作原理和VB的编程特性,我们可以构建...

    基于TCPandUDP的socket编程.pdf

    本文档总结了基于TCP和UDP的Socket编程的相关知识点,涵盖了Socket编程的基本理论和方法、基于TCP和UDP的工作原理、Socket编程的一般方法、Java语言中使用的主要类及其主要作用、TCP和UDP编程的主要差异和特点、文件...

    基于UDP协议的Socket网络编程模式的实现_周小松

    基于UDP协议的Socket网络编程模式的实现_周小松

Global site tag (gtag.js) - Google Analytics