常见的通讯协议有udp和tcp。

--将数据及源、目的封装在数据包中,不需要建立连接;

--每个数据包的大小限制在64k以内;

--因无连接,是不可靠协议;

--不需要建立连接,所以传输速度快,但是容易丢失数据;

总之:Udp是面向无连接的通讯协议,传输数据时,不管对端服务是否启动,直接发送。

日常中使用Udp技术的软件有:飞秋、视频会议等;

分为客户端、服务器端

服务器段代码如下:

 package udp;

 import java.net.DatagramPacket;
import java.net.DatagramSocket; public class Server {
public static void main(String[] args) {
DatagramSocket ds=null;
DatagramPacket dp=null;
try {
ds=new DatagramSocket(9000);//服务端口
byte[] b=new byte[1024];//用于接收客户端的数据
dp=new DatagramPacket(b, b.length);
ds.receive(dp);//接收
String me=new String (dp.getData(),0,dp.getLength());//得到字符串
System.out.println(me); ds=new DatagramSocket();
String me2="ok";
dp=new DatagramPacket(me2.getBytes(), me2.length(), dp.getAddress(), dp.getPort());//直接根据数据报获取到获取数据的地址,端口
ds.send(dp);//响应数据
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}

客户端代码如下:

 package udp;

 import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; public class Client {
public static void main(String[] args) {
DatagramSocket ds=null;
DatagramPacket dp=null;
try {
ds=new DatagramSocket();
String message="hello";
dp=new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName("localhost"), 9000);
ds.send(dp); byte[] b=new byte[1024];
dp=new DatagramPacket(b, b.length);
ds.receive(dp);
String me=new String (dp.getData(),0,dp.getLength());
System.out.println(me); } catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}

tcp编程查看:http://www.cnblogs.com/GH0522/p/8119533.html

JAVA Socket编程(一)之UDP通信的更多相关文章

  1. Java Socket编程题库

    一.    填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...

  2. 如何为可扩展系统进行Java Socket编程

    从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket ...

  3. Java Socket 编程指南

    Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...

  4. Java Socket编程基础篇

    原文地址:Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Sock ...

  5. Java Socket编程(转)

    Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...

  6. Java基础:三步学会Java Socket编程

    Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛        第一步 ...

  7. 转:Java Socket编程

    对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将 ...

  8. VC++使用socket进行TCP、UDP通信实例总结

    1.        两台计算机通信需要协议,通信的两台计算机IP必须唯一 2.        同一个计算机可以进行多个应用程序与其他计算机通信,IP地址唯一,而端口号是区别同一计算机(同一IP)的唯一 ...

  9. Java Socket编程详细解说

    Java Socket编程 JavaSocketServerSocket乱码超时 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是So ...

  10. 多线程Java Socket编程示例

    package org.merit.test.socket; import java.io.BufferedReader; import java.io.IOException; import jav ...

随机推荐

  1. 线性回归,附tensorflow实现

    本文同步自:https://zhuanlan.zhihu.com/p/30738405 本文旨在通过介绍线性回归来引出一些基本概念:h(x),J(θ),梯度下降法 有一组数据: x=[1,2,3,4, ...

  2. MySql的虚拟机和Xshell5的连接过程

    给大家介绍一下虚拟机和Xshell5连接的基本配置1.安装虚拟机,跟着提示一步一步安装即可,注意添加镜像文件,虚拟机就完成了.2.下载一个Xshell5,安装好之后.要修改虚拟机的网卡状态    1) ...

  3. Python shutil模块

    shutil模块下 copy(复制).rm(删除).move(移动) 常用方法举例. copyfileobj(fsrc, fdst[, length])copyfile(src, dst, *, fo ...

  4. c语言的预处理指令分3种   1> 宏定义   2> 条件编译   3> 文件包含

    宏简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 所有的预处 ...

  5. 51Nod 1084 矩阵取数问题 V2 双线程DP 滚动数组优化

    基准时间限制:2 秒 空间限制:131072 KB  一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向 ...

  6. NYOJ 323 Drainage Ditches 网络流 FF 练手

    Drainage Ditches 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 Every time it rains on Farmer John's fields, ...

  7. MongoDB入门学习(一):MongoDB的安装和管理

    以前用MySQL数据库,整天都是写大堆大堆的SQL语句,要记住这些SQL关键字都要花好几天时间,写的蛋都爆了,当接触到MongoDB的时候,发现不用写SQL,瞬间觉得高大上,瞬间产生了学习使用它的冲动 ...

  8. 获取或设置当前窗口contextmenu事件的事件处理函数

    在浏览器中 鼠标右键点击会显示默认的 自带的菜单,那么如何禁止 和更改呢? 1)  禁止右键 window.oncontextmenu = funcRef; //funcRef是个函数引用 列子: w ...

  9. 【Flink】流-表概念

    title: Flink流-表概念 date: 2017-12-12 14:48:16 categories: technique tags: Flink Flink Streaming Dynami ...

  10. 基于TCP协议的socket编程

    什么是socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面, ...