基于UDP协议的Socket简单实例
使用两个类 DatagramPacket -- 表示数据报包
DatagramSocket -- 表示进行端到端的通信类
服务端四步
1、定义服务端IP 端口 数据内容
2、创建DategramPacket 数据包对象 将其包含数据内容
3、创建DategramSocket 对象
4、socket.send() 进行发送;
UdpSocketServer 代码
package com.chen.study.socket.socketServer; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UdpSocketServer { private static int port = 12000; /** * UDPsocket服务 */ public static void UdpSocketServer(){ try { //1.创建服务端口 DatagramSocket socket = new DatagramSocket(port); System.out.println("UDPsocket已经启动....."); //2.创建数据报,用于接收客户端的发送数据 byte[] data = new byte[1024]; DatagramPacket packet = new DatagramPacket(data, data.length); //3.接受客户端请求 socket.receive(packet);//此方法在接收到数据前一直处于阻塞状态 //4.读取数据 String info = new String(data, 0,packet.getLength()); System.out.println("我是服务器,客户端说:"+info); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { UdpSocketServer(); } }
客户端
1.获取 IP 地址与 端口号 InetAddress inetaddress
2.创建数据报
3.创建Socket
4.发送 Socket.send(DatagramPacket packet)
客户端代码 写道
package com.chen.study.socket.socketServer; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; public class UdpSocketClient { private static int port = 12000; private static String ip = "192.168.119.35"; public static void UdpSocketClient(){ try { byte[] data = "服务端你好!".getBytes(); System.out.println("客户端发送:"+"服务端你好!"); InetAddress inetaddress = InetAddress.getByName(ip); //创建数据报 DatagramPacket packet = new DatagramPacket(data, data.length, inetaddress, port); //创建Socket DatagramSocket socket = new DatagramSocket(); socket.send(packet); } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub UdpSocketClient(); } }
附:
String info = new String (date,0,packet.getLength());
String构造方法
public String(byte[] bytes,
int offset,
int length)
bytes - 要解码为字符的 byte
offset - 要解码的第一个 byte 的索引
length - 要解码的 byte 数
相关推荐
自己用MFC对话框程序实现的基于UDP的socket编程示例,分为客户端和服务端,客户端发送一个字符串,服务端接收。代码简单明了,无论是学习还是拿到自己的项目中使用都很好。
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
该资源为一个比较基础的基于UDP的Socket通信,代码比较基础。在VC6.0和VS环境下都可以正常运行。
文件时简单的UDP服务器程序和UDP客户端程序的例子,这两个程序都是Win32应用程序,在本地机器上的8888端口进行通信
C#的Socket实现UDP协议通信 CSharp
自己编写的基于UDP的Socket通信类,附上基于对话框例子。用在工程应该很方便。使用该类时,只需要处理WM_UDP_DATA消息即可收到数据,类中有发送数据的方法。
摘要:网络上基于socket通信的例子很多,但要么代码不好用,要么资料不全,本程序综合并参考了一定数量的文档和代码,开发如下socket通信系统。 工具: VS 2010 (C++) ; 通信原理:UDP ; 采用技术:CSocket ; ...
主要介绍了Linux中使用C语言实现基于UDP协议的socket通信示例,服务器端与客户端的功能都非常基础,需要的朋友可以参考下
矿用产量数据采集应用实例,使用HPsocket框架结构,通过UDP协议接收从服务器上传的数据并进行解码
socket编程 : 一个基于UDP协议的通讯实例
自己写的基于UDP协议的Socket通信程序(C#) UDPServer.cs 是服务端 UDPClient.cs 是客户端 csc /target:exe UDPServer.cs 编译为EXE文件
C++控制台下的SOCKET实例实例源码
tcp udp socket基础实例,很实用
Socket 简单实现tcp,udp数据传输。Socket 简单实现tcp,udp数据传输。
Delphi之UDPSocket实例开发,TCP/IP协议。
MFC工程通信经典实例,基于SOCKET UDP协议,有助于学习和理解UDP协议原理.
socket udp 通信例子 客户端 服务器端代码
简单的基于UDP的客户端实例 MFC平台下编写,API的socket编程
网上也有很多关于这方面的入门资料,但是很多注释不清楚,或者例子本身就有错误,这是我自己总结的,绝不是从网上Copy的,希望对大家有所帮助