JAVA Socket编程(一)之UDP通信
常见的通讯协议有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通信的更多相关文章
- Java Socket编程题库
一. 填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...
- 如何为可扩展系统进行Java Socket编程
从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket ...
- Java Socket 编程指南
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- Java Socket编程基础篇
原文地址:Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Sock ...
- Java Socket编程(转)
Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...
- Java基础:三步学会Java Socket编程
Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛 第一步 ...
- 转:Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将 ...
- VC++使用socket进行TCP、UDP通信实例总结
1. 两台计算机通信需要协议,通信的两台计算机IP必须唯一 2. 同一个计算机可以进行多个应用程序与其他计算机通信,IP地址唯一,而端口号是区别同一计算机(同一IP)的唯一 ...
- Java Socket编程详细解说
Java Socket编程 JavaSocketServerSocket乱码超时 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是So ...
- 多线程Java Socket编程示例
package org.merit.test.socket; import java.io.BufferedReader; import java.io.IOException; import jav ...
随机推荐
- Struts2-045验证脚本
#! /usr/bin/env python # encoding:utf-8 import urllib2 import sys from poster.encode import multipar ...
- 作为函数的mixin
作为函数的mixin 在一个 mixin 内部定义的变量或 mixin,都调用者可见,因此,它们可以作为它的返回值.如,以下Less代码: .count(@x, @y) { @sum:(@x ...
- 【微软大法好】VS Tools for AI全攻略(3)
接着上文,现在我们需要一种穷人的方法来搭建好Azure虚拟机. 思路很简单,因为AI组件的原理其实是传送了script文件和命令上去,那么我们这个虚拟机只要做好了所有的配置,那么我们就可以将它当作深度 ...
- 搭建一个属于自己的webpack config(-)
搭建一个属于自己的webpack config(-) 前期准备 环境说明 mac 10.12.6 node v8.8.1 npm 5.4.2 全局安装下webpack.webpack-dev-serv ...
- POJ 2828 Buy Tickets 线段树 倒序插入 节点空位预留(思路巧妙)
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 19725 Accepted: 9756 Desc ...
- gitlab环境搭建
企业级的git管理程序.最好用的之一吧.估计其它的也得叫之二. 怎么搭建呢? 2G以上配置的机器才可以搞. . 如下 安装需要注意的是.如果开了80端口,8080的需要修改配置文件 下面会提到 1. ...
- Linux下SVN安装配置以及使用
第一章 安装 1. 采用源文件编译安装.源文件共两个,为: subversion-1.6.21.tar.gz(subversion 源文件) subversion-deps-1.6.21.tar.gz ...
- Subquery returns more than 1 row
Subquery returns more than 1 row表示子查询返回了多行数据 例如: select * from table1 where table1.colums=(select co ...
- Nodejs学习笔记(十七)--- 浮点运算decimal.js
目录 前言 JavaScript加减乘除运算 decimal.js加减乘除运算 前言 开发过程中免不了有浮点运算,JavaScript浮点运算的精度问题会带来一些困扰 JavaScript 只有一种数 ...
- C#换行 System.Environment.NewLine。
为保持平台的通用性,可以用系统默认换行符 System.Environment.NewLine.