java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

 1 try {
 2                          //向指定的ip和端口发送数据~!
 3                          //先说明一下数据是谁发送过来的!
 4                          byte[] ip = InetAddress.getLocalHost().getHostAddress().getBytes();
 5                          dp = new DatagramPacket(ip, ip.length, sendIAD, QQReceive.getPort());
 6                          ds.send(dp);
 7
 8                          //这里主要是因为多可数据报包发送时会产生丢包的情况...所以暂停一段时间!
 9                          try {
10                             Thread.sleep(100);
11                          } catch (InterruptedException e1) {
12                          }
13
14                          dp = new DatagramPacket("PARAGRAPH".getBytes(), "PARAGRAPH".getBytes().length, sendIAD, QQReceive.getPort());
15                          ds.send(dp);
16
17                          try {
18                                 Thread.sleep(100);
19                          } catch (InterruptedException e1) {
20
21                          }
22
23                          dp = new DatagramPacket(bt, bt.length, sendIAD, QQReceive.getPort());
24                          ds.send(dp);
25  } catch (IOException e1) {
26       e1.printStackTrace();
27  }
时间: 2024-10-14 21:50:38

java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案的相关文章

java中原生的发送http请求(无任何的jar包导入)

1 package com.teamsun.pay.wxpay.util; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStreamReader; 6 import java.io.PrintWriter; 7 import java.net.URL; 8 import java.net.URLConnection; 9 import java.util.List;

Java 中的 int 与 Integer 用于 List<Integer> 时,以及通过打印变量检测程序运行和函数调用次数计数

总结一下最近做的东西中遇到的问题 1. Java 中的 int 与 Integer 用于 List<Integer>  时 两者之间的关系都是很清楚的,int 是基本数据类型,存储的是值,而 Integer 是引用数据类型,存储的是指向数值的地址. Integer 是在类层面上对 int 的封装.然后 Java 提供了自动装包拆包机制,使得两者之间可以转换.这里主要是测试了下它们用于 List 时候的疑惑. /* * To change this template, choose Tools

Java中Socket在发送请求的时候要分清print()和println()

近期在开发中需要一个功能,向第三方服务器发送我方数据的功能,对数据的封装格式要求特别严格,在组装数据完成后,发送给第三方服务器却怎么也通不过,查找了好久,也对比了对方给出来的数据样本,还是不行,后来检查代码和拦截发送的数据后才发现,在socket发送的时候,使用的是println()方法,这个方法会自动在数据的后面加上一个回车符,所以在对比数据的时候没有发现,改为print()后顺利通过了~~~

疑难杂症:Java中Scanner连续获取int和String型发生错误.

使用Scanner类获取输入,连续获取int类型和String类型数据时候,发生错误. Scanner sc = new Scanner(System.in); System.out.println("输入int类型"); int a = sc.nextInt(); System.out.println("输入String类型"); String s = sc.nextLine(); System.out.println(a); System.out.println

049、Java中使用switch判断,不加入break时的操作

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String[] args) { int ch = 1; switch (ch) { // 判断的是数字 case 2: { // 判断内容是否是2 System.out.println("内容是2"); } case 1: { // 判断内容是否是1

关于Java实现去除连续空格的延伸

第一篇随笔,技术含量比较低,当做笔记给自己记录一下现阶段的一次学习.(*^__^*) …… Java中去除连续空格的代码很简单: public static String formatString(String sourceString) { return sourceString.replaceAll(" +", " "); } 比如输入字符串"a  b   c    d",则经过调用函数处理可以输出"abcd".repla

Java中的软(弱)引用

一.Java中的强.软.弱.虚引用 在JDK中我们可以看到有一个java.lang.ref的包,这个包中就是Java中实现强.软.弱.虚引用的包,如下: PhantomReference 虚引用:如果一个对象持有虚引用,就和没有持有引用一样,在任何时候都可能被垃圾回收器回收.虚引用主要用来跟踪对象被垃圾回收的活动,虚引用还有一个和弱.软引用不同的地方是虚引用必须和引用队列联合使用.当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象内存之前,把这个虚引用加入到与之关联的引用队列中

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

Java中serialVersionUID的解释

Java中serialVersionUID的解释 serialVersionUID作用:        序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性. 有两种生成方式: 一个是默认的1L,比如:private static final long serialVersionUID = 1L; 一个是根据类名.接口名.成员方法及属性等来生成一个64位的哈希字段,比如:        private static final   long     serialVersionU