练习1

接收类

package com.socket.demo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket; public class UDPReceiveDemo { public static void main(String[] args) throws IOException{
System.out.println("接收端启动…………");
/*
2、建立UDP的socket的服务,必须明白一个端口号
3、创建数据包。用于储存接收到的数据,方便用数据包对象的方法解析这些数据
4、使用DatagramSocket的receive方法将接收到的数据存储到数据包中
5、通过数据包的方法解析数据包中的数据
5、关闭socket服务
*/ //udpsocket服务,使用DatagramSocket对象
DatagramSocket ds=new DatagramSocket(10002); //使用DatagramPacket将数据封装到该对象中
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
//通过udp的socket服务将数据包发送出去,通过send方法
ds.receive(dp);
//通过数据包的方法解析数据包中的数据,比方。地址、端口、数据内容等
String ip=dp.getAddress().getHostAddress();
//String name=dp.getAddress().getHostName();
int port=dp.getPort();
String text=new String(dp.getData(),0,dp.getLength()); //System.out.println("-----"+ip+"-----"+name+"-----"+port+"-----"+text);
System.out.println("-----"+ip+"----------"+port+"-----"+text);
//关闭资源
ds.close();
} }

发送类

package com.socket.demo;

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 UDPSendDemo { public static void main(String[] args) throws IOException{
System.out.println("发送端启动…………");
/*
* 1、创建udp传输的发送端
2、建立UDP的socket的服务
3、将要发送的数据封装到数据包中
4、通过udp的socket服务将数据包发送出去
5、关闭socket服务
*/ //udpsocket服务。使用DatagramSocket对象
DatagramSocket ds=new DatagramSocket(8888);//监听端口 //将要发送的数据封装到数据包中
String str="udp传输演示。go";
//使用DatagramPacket将数据封装到该对象中
byte[] buf=str.getBytes();
DatagramPacket dp=
new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.100"),10002);
//通过udp的socket服务将数据包发送出去,通过send方法
ds.send(dp); //关闭资源
ds.close();
} }

练习2

接收类:

package com.socket.demo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket; public class UDPReceiveDemo2 { public static void main(String[] args) throws IOException{
System.out.println("接收端启动…………");
/*
2、建立UDP的socket的服务,必须明白一个端口号
3、创建数据包,用于储存接收到的数据,方便用数据包对象的方法解析这些数据
4、使用DatagramSocket的receive方法将接收到的数据存储到数据包中
5、通过数据包的方法解析数据包中的数据
5、关闭socket服务
*/ //udpsocket服务。使用DatagramSocket对象
DatagramSocket ds=new DatagramSocket(10003); while(true){
//使用DatagramPacket将数据封装到该对象中
byte[] buf=new byte[1024];
DatagramPacket dp=new DatagramPacket(buf, buf.length);
//通过udp的socket服务将数据包发送出去,通过send方法
ds.receive(dp);//堵塞式的。 //通过数据包的方法解析数据包中的数据,比方,地址、端口、数据内容等
String ip=dp.getAddress().getHostAddress();
//String name=dp.getAddress().getHostName();
int port=dp.getPort();
String text=new String(dp.getData(),0,dp.getLength()); //System.out.println("-----"+ip+"-----"+name+"-----"+port+"-----"+text);
System.out.println("-----"+ip+"----------"+port+"-----"+text);
}
//关闭资源
//ds.close();
}
}

发送类:

package com.socket.demo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress; public class UDPSendDemo2 { public static void main(String[] args) throws IOException{
System.out.println("发送端启动…………");
/*
* 1、创建udp传输的发送端
2、建立UDP的socket的服务
3、将要发送的数据封装到数据包中
4、通过udp的socket服务将数据包发送出去
5、关闭socket服务
*/ //udpsocket服务,使用DatagramSocket对象
DatagramSocket ds=new DatagramSocket(9999);//监听端口 //将要发送的数据封装到数据包中
//String str="udp传输演示。go";
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//键盘输入
String line=null;
//使用DatagramPacket将数据封装到该对象中
while((line=bufr.readLine())!=null){
byte[] buf=line.getBytes();//
DatagramPacket dp=
new DatagramPacket(buf, buf.length,InetAddress.getByName("192.168.1.100"),10003);
//通过udp的socket服务将数据包发送出去。通过send方法
ds.send(dp);
if("886".equals(line)){
break;
}
}
//关闭资源
ds.close();
}
}

执行效果图:

接收

发送

Java的socket服务UDP协议的更多相关文章

  1. Java实例练习——基于UDP协议的多客户端通信

    昨天学习了UDP协议通信,然后就想着做一个基于UDP的多客户端通信(一对多),但是半天没做出来,今天早上在参考了很多代码以后,修改了自己的代码,然后运行成功,在这里分享以下代码,也说一下自己的认识误区 ...

  2. socket之UDP协议,并发编程介绍,操作系统发展史

    socket之UDP协议 1.UDP协议 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection 参考 ...

  3. java 网络编程基础 UDP协议的Socket:DatagramSocket;广播Socket:MulticastSocket

    什么是UDP协议: UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket 但这两个 Socket之间并没有虚拟链路,这两个Socket只是发送.接收数据报的对象.Java 提供了 ...

  4. C#的Socket实现UDP协议通信

    今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础.众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层——传输层.与TC ...

  5. java 网络编程基础 UDP协议DatagramSocket,MulticastSocket 实现局域网聊天软件(Server + Client模式)

      开发思路: 服务端两个Socket: UDP的DatagramSocket接收客户端消息. 广播multicastSocket 发送广播消息 客户端一个Socket: multicastSocke ...

  6. 网络Socket编程UDP协议例子

    服务端代码 public class UDPChatServer { //通讯端口 private Integer port=8000; //数据报文的通讯通道对象 private DatagramC ...

  7. Socket的UDP协议在erlang中的实现

    现在我们看看UDP协议(User Datagram Protocol,用户数据报协议).使用UDP,互联网上的机器之间可以互相发送小段的数据,叫做数据报.UDP数据报是不可靠的,这意味着如果客户端发送 ...

  8. java ->网络通信协议(UDP协议、TCP协议)

    网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规 ...

  9. Java通过socket实现smtp协议发送邮件

    import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import java ...

随机推荐

  1. DB2错误代码

    db2错误代码大全 博客分类: 数据库 sqlcode sqlstate 说明 000 00000 SQL语句成功完毕 01xxx SQL语句成功完毕,可是有警告 +012 01545 未限定的列名被 ...

  2. 怎样通过git协作开发

    近期iOS群里的一些小伙伴刚刚毕业,刚參加工作的小伙伴们,对于怎样进行git下的一个写作开发抱有较大的疑惑.今天小汤我就给大家分享个git下协作开发的小技巧. 怎样通过git协作开发? 当两个开发人员 ...

  3. iOS7 文本转语音 AVSpeechSynthesizer

    OS7 的这个功能确实不错.我刚试了下,用官方提供的API ,简单的几句代码就能实现文本转语音! Xcode 5.0 工程建好后首先把AVFoundation.framework 加入到工程 AVSp ...

  4. windows接口被占用

    netsh winsock reset 重启winsock服务

  5. The OpenGL pipeline

    1. Vertex Data 2. Vertex Shader 3. Tessellation Control Shader 4.Tessellation evaluation Shader 5. G ...

  6. 训练赛 Grouping(强连通分量缩点 + DAG求最长路)

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=158#problem/F 大致题意:给出n个人和m种关系(ti,si),表示ti ...

  7. UDE-00008 ORA-31626 ORA-06512 ORA-25254

    今天在导出一个模式的时候,约140GB,出现例如以下错误: UDE-00008: operation generated ORACLE error 31626 ORA-31626: job does ...

  8. POJ 1146:ID Codes

    ID Codes Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6281 Accepted: 3769 Description ...

  9. 【Android先进】查看手机记忆库状态和应用方法

    一世 我们知道.android程序存储器通常被限制16M.当然,24M的,和android程序存储器分为2部分:native和dalvik.dalvik 就是我们寻常说的java堆.我们创建的对象是在 ...

  10. 数据结构 - trie

    #include <cstring> #include <iostream> #include <map> #include <cstdio> usin ...