Java基于socket服务实现UDP协议的方法_java

本文实例讲述了Java基于socket服务实现UDP协议的方法。分享给大家供大家参考。具体如下:

示例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程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
, udp协议
socket服务
java实现通信协议udp、udp协议socket编程、java udp socket、java udp socket编程、java socket tcp udp,以便于您获取更多的相关知识。

时间: 2024-10-27 05:01:07

Java基于socket服务实现UDP协议的方法_java的相关文章

Java基于socket服务实现UDP协议的方法

  本文实例讲述了Java基于socket服务实现UDP协议的方法.分享给大家供大家参考.具体如下: 示例1: 接收类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package com.socket.demo; import java.io.IOException; import java.net.DatagramPacket; import java.net

Java基于Socket实现网络编程实例详解_java

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

Java基于socket实现简易聊天室实例

  本文实例讲述了Java基于socket实现简易聊天室的方法.分享给大家供大家参考.具体实现方法如下: chatroomdemo.java ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package com.socket.demo; import java.io.IOException; import java.net.DatagramSocket; public class ChatRoomDemo { /** * @param args * @thro

Java基于socket实现简易聊天室实例_java

本文实例讲述了Java基于socket实现简易聊天室的方法.分享给大家供大家参考.具体实现方法如下: chatroomdemo.java package com.socket.demo; import java.io.IOException; import java.net.DatagramSocket; public class ChatRoomDemo { /** * @param args * @throws IOException */ public static void main(S

scoket tcp ip 报文-Java 的 Socket服务端客户端以tcp/ip协议发送接收报文

问题描述 Java 的 Socket服务端客户端以tcp/ip协议发送接收报文 代码谁有模板,比如给你一个login报文,logout报文!!急急急!!! 解决方案 Android Socket 编程(WIFI 和 ADB) 有了发送数据的功能,再发送文件还需要分包等协议. 解决方案二: 这个不知道是不是你要的答案, 解决方案三: http://blog.csdn.net/u013301192/article/details/46336719 解决方案四: 网页上的1楼回复应该对你有用,祝你好运

java基于Socket做一个简单下载器_java

本文实例为大家分享了java基于Socket制作下载器的过程,及相关代码,供大家参考,具体内容如下 1.首先要建立一个服务器用来处理信息并给客户端传输文件(电脑)  我是用电脑开了一个WIFI,手机连上后使用scoket传输的  SERVERIP要根据自己实际情况更改.端口也可以随便更改0~65535,尽量选大一点  import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Bu

浅析Java基于Socket的文件传输案例_java

本文实例介绍了Java基于Socket的文件传输案例,分享给大家供大家参考,具体内容如下 1.Java代码 package com.wf.demo.socket.socketfile; import java.net.*; import java.io.*; /** * 2.socket的Util辅助类 * * @author willson * */ public class ClientSocket { private String ip; private int port; private

Java基于Socket的文件传输实现方法_java

本文实例讲述了Java基于Socket的文件传输实现方法.分享给大家供大家参考,具体如下: 1. Java代码如下: package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.Ser

asp.net基于windows服务实现定时发送邮件的方法_实用技巧

本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; public int nowhour; public int minutes; public string sendTime; public Thread th; public string isOpen;//是否启用定时发送 public string strToEUser; public static i