`

java udp socket实例

阅读更多
客户端:
package udp;

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 SimpleClient {

	private DatagramSocket socket; // udp套接字
	DatagramPacket packet = null;// udp数据包

	public static void main(String[] args) {
		SimpleClient client = new SimpleClient();
		try {
			client.connect();
			client.send();
			client.disconnect();
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

	private void disconnect() {

		socket.close();
	}

	private void send() throws IOException {

		byte[] buf = new String("UDP TEST data from client").getBytes(); //创建发送数据缓冲区
		// 数据包包括所有的信息,ip地址,端口号及要发送的数据
		DatagramPacket packet = new DatagramPacket(buf, buf.length, InetAddress
				.getByName("localhost"), 8888);
		
//		发送请求
		System.out.println("serverPort  = " + 8888);
		socket.send(packet);
		System.out.println("packet.getData()=" + new String(packet.getData()));
	}
	private void connect() throws SocketException { //创建连接

		socket = new DatagramSocket();
	}

}

服务器端:
package udp;

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

public class SimpleServer {
	DatagramSocket socket; // udp套接字
	DatagramPacket packet = null;// udp数据包

	public static void main(String[] args) {

		SimpleServer server = new SimpleServer();
		try {
			server.connect(8888);  //连接
			server.accept();          //接收请求
			server.disconnect();      //关闭套接字
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void disconnect() {
		socket.close();
	}

	private void accept() throws IOException {

		reveive();
	}

	private void reveive() throws IOException {
		// 默认缓冲区大小,如果设置的缓冲区大小小于客户端发送的数据大小,怎么办??
		byte[] buf = new byte[25];
		packet = new DatagramPacket(buf, buf.length);

		// 接收请求
		socket.receive(packet);
		System.out
				.println("Received package = " + new String(packet.getData()));
	}

	private void connect(int port) throws SocketException { // 创建连接

		socket = new DatagramSocket(port);
		socket.setReceiveBufferSize(512);

	}
}

分享到:
评论

相关推荐

    java Udp 收发结构体实例 Socket编程

    Java UDP(用户数据报协议)收发结构体实例与Socket编程是网络通信中的重要主题,尤其是在需要高效、无连接的数据传输场景下。UDP是一种无连接的传输层协议,相较于TCP,它提供了更低的延迟和更高的吞吐量,但不保证...

    JAVA UDPSocket代码

    创建一个UDP Socket实例并不与远程主机建立连接,而是通过发送和接收`java.net.DatagramPacket`对象来完成通信。 2. **DatagramPacket**: `DatagramPacket`用于封装数据和目标/源IP地址及端口号信息。数据可以是...

    java udp 实现简单实例

    本文将通过一个简单的实例来介绍如何使用Java实现UDP通信。 首先,我们来看一下UDP通信中的两个主要类:`DatagramPacket`和`DatagramSocket`。 1. `DatagramPacket`类: - `DatagramPacket`用于封装数据,并指定...

    java_UDPSocket_codes.rar_ServerThread_java udp程序

    这个压缩包包含的是关于Java多线程UDP服务器程序(ServerThread)和客户端程序的代码示例以及相关的多线程Socket编程资料。 1. **UDP通信基础**: UDP(User Datagram Protocol)是一种无连接的协议,它不保证数据...

    java-udp.rar_UDP Java_UDP java socket_java socket _java socket

    这个教程将深入讲解如何使用Java进行UDP网络通讯,并通过两个核心文件`UDPServer.java`和`UDPClient.java`的实例来阐述关键概念。 首先,UDP是一种无连接的协议,它不建立连接,而是直接发送数据包。每个数据包都...

    JAVA_ Socket_UDP(客户端服务器)

    对于客户端,我们首先创建一个DatagramSocket实例,然后准备数据并封装到`java.net.DatagramPacket`对象中,最后通过socket的`send()`方法将其发送到服务器。以下是一个简单的UDP客户端示例: ```java import java....

    Java基于socket实现的客户端和服务端通信功能完整实例

    Java基于socket实现的客户端和服务端通信功能完整实例 在Java中,Socket是实现网络通信的基础,通过Socket可以实现客户端和服务器端之间的通信。本文将详细介绍Java基于Socket实现的客户端和服务端通信功能,包括...

    UDP socket

    1. **创建Socket**:在Java中,创建一个UDP Socket需要实例化`DatagramSocket`类。服务器端通常先创建Socket并绑定到特定的IP地址和端口号,以便接收数据报文。 ```java DatagramSocket serverSocket = new ...

    UDP.rar_UDP socket_socket udp

    1. **创建Socket**:在C++或Java等语言中,我们首先需要创建一个Socket实例,通过`socket()`函数指定协议族(通常为AF_INET,代表IPv4)和协议类型(SOCK_DGRAM,表示UDP)。 2. **地址结构体**:在进行UDP通信前,...

    java socket 编程,Java socket 编程实例

    ### Java Socket编程详解及实例分析 #### 一、Socket编程基础概述 在计算机网络通信领域,Socket编程是一种广泛使用的通信方式。它为不同主机上的进程提供了双向通信的能力,是网络编程的基础之一。Java语言提供了...

    JAVA UDP客户端服务端编写实例.rar

    JAVA UDP客户端服务端编写实例,  byte[] buffer=new byte[256]; //缓冲区数组  DatagramSocket socket=new DatagramSocket(port);//实例化数据报Socket  DatagramPacket packet;  System.out.println(...

    Java socket编程实例.pdf

    ### Java Socket 编程实例详解 #### 一、引言 在现代软件开发中,网络编程占据了极其重要的地位。无论是互联网应用还是企业级系统,都需要处理不同设备间的通信。Java作为一种广泛使用的编程语言,提供了强大的...

    Java UDP 网络聊天 基于Socket

    Java UDP(用户数据报协议)网络聊天程序是基于Socket编程实现的一种通信方式。UDP是一种无连接的、不可靠的传输层协议,相比TCP(传输控制协议),它在速度上更占优势,但不保证数据的顺序和完整性。下面将详细阐述...

    java通信socket入门实例

    在这个"java通信socket入门实例"中,我们将探讨如何使用Java的Socket API来建立连接、交换数据以及关闭连接。这个入门示例可能包括了客户端(Client)和服务器端(Server)两部分代码,帮助初学者理解Socket通信的...

    tcp_udp_socket.zip_Java TCP/UDP_java Tcp _java socket _java tcp

    本实验项目“tcp_udp_socket.zip”旨在帮助开发者理解如何使用Java实现TCP和UDP的Socket通信。以下将详细讲解这两个协议及其在Java中的实现。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠的...

    tcp udp java 实例

    本文将深入探讨TCP与UDP的区别、工作原理以及如何在Java中实现这两种协议的实例。 TCP是一种面向连接的、可靠的传输协议,它确保了数据的完整性和顺序性。在数据传输前,TCP会建立一个连接,并通过三次握手来确保两...

    android udp socket通讯

    本文将详细讲解如何在Android应用中实现UDP Socket通信,以帮助开发者构建基于UDP的数据传输功能。 首先,我们需要创建一个`DatagramSocket`实例来收发数据。在Android中,这个操作通常在`try-catch`块中完成,因为...

    java Socket UDP实例详解

    Java Socket UDP实例详解 在Java中,Socket API不仅支持TCP(传输控制协议)通信,也支持UDP(用户数据报协议)。UDP是一种无连接的、不可靠的传输协议,适合于实时性要求高但数据完整性要求相对较低的场景。在本文...

    java网络编程,UDP,发送16进制报文。

    本教程主要关注使用Java标准版(J2SE)进行UDP(用户数据报协议)通信,特别是如何发送16进制格式的报文。UDP是一种无连接的、不可靠的传输协议,适合对实时性要求高的场景,例如视频流和在线游戏。 首先,让我们...

    精通JAVA_SOCKET编程技术

    1. **创建Socket**:在客户端,通过`Socket(String host, int port)`或`Socket(InetAddress address, int port)`等构造函数创建Socket实例,其中`host`或`address`代表远程服务器的IP地址,`port`是服务器上监听的...

Global site tag (gtag.js) - Google Analytics