java基礎篇---網絡編程(UDP程序設計)

UDP程序設計

在TCP的索引操作都必須建立可靠地連接,這樣一來肯定會浪費大量的系統性能,為了減少這種開銷,在網絡中又提供了另外一種傳輸協議---UDP,不可靠的連接,這種協議在各個聊天工具中被廣泛的應用。

咋UDP開發中使用DatagramPacket包裝一條要發送的信息,之后使用DatagramSocket用于完成信息的發送操作。

例如:現在使用聊天工具進行聊天的功能,那么A的發送的信息B不一定可以接受的到,因為使用的是UDP的協議。

UDP中主要是使用數據報協議發送的。

DatagramPacket中的方法

是包含真實的是要發送的信息,稱為數據報

所有的數據報使用DatagramPacket進行發送的操作

DatagramSocket

那么如果要想運行程序,則在數據報的開發中,應該首先保證客戶端要打開

import java.net.DatagramPacket ;
import java.net.DatagramSocket ;public class UDPClient{public static void main(String args[]) throws Exception{    // 所有異常拋出DatagramSocket ds = null ;        // 定義接收數據報的對象byte[] buf = new byte[1024] ;    // 開辟空間,以接收數據DatagramPacket dp = null ;        // 聲明DatagramPacket對象ds = new DatagramSocket(9000) ;    // 客戶端在9000端口上等待服務器發送信息dp = new DatagramPacket(buf,1024) ; // 所有的信息使用buf保存ds.receive(dp)  ;    // 接收數據String str = new String(dp.getData(),0,dp.getLength()) + "from " + dp.getAddress().getHostAddress() + ":" + dp.getPort() ;System.out.println(str) ;    // 輸出內容
    }
};

要進一步等待服務器發送信息

import java.net.DatagramPacket ;
import java.net.DatagramSocket ;
import java.net.InetAddress ;public class UDPServer{public static void main(String args[]) throws Exception{    // 所有異常拋出DatagramSocket ds = null ;        // 定義發送數據報的對象DatagramPacket dp = null ;        // 聲明DatagramPacket對象ds = new DatagramSocket(3000) ;    // 服務端在3000端口上等待服務器發送信息\String str = "hello World!!!" ;dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),9000) ; // 所有的信息使用buf保存System.out.println("發送信息。") ;ds.send(dp);    // 發送信息出去
        ds.close() ;}
};

UDP 屬于不可靠的連接協議,服務端發送的信息客戶端未必接收的到,采用的是數據報的協議發送。

?

轉載于:https://www.cnblogs.com/oumyye/p/4271198.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257675.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

bzoj - 2038: [2009國家集訓隊]小Z的襪子(hose)

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id2038 莫隊算法可以解決一類不修改、離線查詢問題。而這題可以用莫隊來做。 *我是看這個論文學會的:(鏈接~) 其實莫隊就是一種優化的暴力,只是把查詢都離線預先按照規則…

c++ 靜態變量賦值_Python變量及常量解釋說明

變量(1)在計算機程序中,變量不僅可以是數字,還可以是任意數據類型,變量子啊程序中就是一個變量名表示的,變量名必須是大小寫英文,數字,和"_"的組合,切不能以數字開頭.a 1 #變量a是一個整數1b "shuai" #變量b是一個字符串1c True #變量c是一個布爾值Tru…

Hibernate中session的clear(),flush(),evict()方法詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、Clear 方法 無論是Load 還是 Get 都會首先查找緩存(一級緩存) 如果沒有,才會去數據庫查找,調用Clear() 方法,可以強制清除Session緩存。例: pub…

快速排序和折半查找

package BinarySerach;import java.util.Scanner;public class BinarySerch {/***折半查找和快速排序*/static final int N 15;static void quickSort(int [] array,int left,int right){int f,t;int ltemp left;int rtemp right;//確定分界值f array[(leftright)/2];while(…

CANVAS運用-對圖片的壓縮上傳(僅針對移動瀏覽器)

最近在移動端設計頭像上傳功能時&#xff0c;原本是以<input type"file">直接通過formData上傳&#xff0c;然而實際使用情況是&#xff1a;對于過大的圖片&#xff08;高像素手機所拍攝的照片等&#xff09;上傳時間過長會導致上傳失敗&#xff0c;而每次都上…

mysql重命名數據表稱方式_在MySQL中,使用()重命名數據表。_學小易找答案

【單選題】( )的上海文壇被稱為“張愛玲年”。【多選題】下列哪些是屬于共集放大電路的特點?()【閱讀理解】Passage Two Thailand is to ban smoking on some of the country’s most popular tourist beaches, with the prospect of up to a year in prison for those caught…

40_自定義泛型方法及其應用

java的泛型不同于C的模板方法那么強大。java的泛型只停留在編譯階段&#xff0c;編譯通過后泛型特征被擦除&#xff0c;主要因為保證jvm的效率。 用泛型知識&#xff0c;寫一個交換數組元素的方法&#xff08;此方法只適合于引用類型數組!因為int[]不會自動轉為Integer[]!&…

SQL Server代理(11/12):維護計劃作業

SQL Server代理是所有實時數據庫的核心。代理有很多不明顯的用法&#xff0c;因此系統的知識&#xff0c;對于開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。 在這一系列的上一篇&#xff0c;我們看了使用代理帳戶模仿Windows安全上下文完成作業步驟的工作。大…

mysql select array_從數據庫select查詢出來的數組

PHP中提供了array_unique函數去除一維數組中的重復項&#xff0c;但是我們實際的項目開發中&#xff0c;從數據庫select查詢出來的數組經常是二維的&#xff1b;這里面可能有重復項&#xff0c;這就需要我們自己定義函數進行去除重復項。思路&#xff1a;1、首先獲取第二維數組…

shell中字分隔的妙用:變量IFS

shell把每個 $IFS 字符對待成一個分隔符&#xff0c;且基于這些字符把其他擴展的結果分割。如果 IFS 未設置&#xff0c;或者它的值正好是 “‘<space><tab><newline>’”&#xff0c;那么任何IFS 字符的序列就送往分割字。自寫一個簡單的腳本&#xff1a;#!…

老子《道德經》第三十五章

上士聞道&#xff0c;勤而行之&#xff1b;中士聞道&#xff0c;若存若亡&#xff1b;下士聞道&#xff0c;大笑之。 不笑不足以為道。 故建言有之&#xff1a;明道若昧&#xff0c;進道若退&#xff0c;夷道若颣。 上德若谷&#xff0c;大白若辱&#xff0c;廣德若不足&#x…

php 通過類名獲取類的文件地址

$reflector new ReflectionClass("Child"); $fn $reflector->getFileName(); return dirname($fn);轉載于:https://www.cnblogs.com/bushe/p/5215718.html

大數據告訴你,電商都把假貨發給誰?

“看人下刀”&#xff0c;電商玩得更科幻 內幕&#xff1a;你在網上買件大牌化妝品&#xff0c;在訂單提交→發貨之前&#xff0c;系統會查詢分析你在全平臺的購物數據(大數據內部共享)&#xff1a;購買均價&#xff0c;常購品牌&#xff0c;退貨率。 如果你同類產品消費傾向絕…

mysql取得列類型_Mysql列類型

數值型整型&#xff1a;tinyint:微小的列類型&#xff0c;1個字節&#xff0c;默認有符號&#xff0c;存儲范圍&#xff1a;-128--127可選屬性&#xff1a;tingyint(M) unsigned zerofillM:寬度(在0填充(zerofill)時才有效),只是顯示效果&#xff0c;不影響實際數據的存儲范圍;…

XtraBackup全備與增量備份

一、XtraBackup安裝 下載地址&#xff1a;http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安裝步驟&#xff1a; How to build XtraBackup on Linux Prerequisites -------------$ yum install cmake gcc gcc-c libaio libaio-devel automake autocon…

《大話設計模式》 國外資料

It is not easy to remember all design patterns. Here are some stories about design patterns which might help! Creational Singleton – Only one president in AmericaFactory – A factory that produces humanAbstract Factory – An abstract factory to produce CP…

DHCP基本配置

第一步 安裝 DHCP [rootlocalhost ~]# yum install dhcp dhcp-devel DHCP文件簡介 /etc/dhcp/dhcpd.conf #主配置文件&#xff0c;除了括號那欄&#xff0c;其它都要結尾 ; 這樣的分號 /var/lib/dhcpd/dhcpd.leases #IP地址租約在這里 第二步 配置 DHCP 主文件配置[rootlocalho…

python arcgis 圖書_arcgis python

本書作者是GIS發方面的知名作者&#xff0c;曾著有《JavaScript構建Web和ArcGIS Server應用實戰》(Building Web and Mobile ArcGIS Server Applications with JavaScript)一書。 本書內容易學易懂&#xff0c;幫助讀者成為GIS發高手。《面向ArcGIS的Python腳本編程》是一本指導…

scrapy 讓指定的spider執行指定的pipeline

處理scrapy中包括多個pipeline時如何讓spider執行制定的pipeline管道&#xff11;:創建一個裝飾器from scrapy.exceptions import DropItemimport functools當有多個pipeline時,判斷spider如何執行指定的管道 def check_spider_pipeline(process_item_method): functools.wr…

五大常用算法之三:貪心算法

一、基本概念&#xff1a; 所謂貪心算法是指&#xff0c;在對問題求解時&#xff0c;總是做出在當前看來是最好的選擇。也就是說&#xff0c;不從整體最優上加以考慮&#xff0c;他所做出的僅是在某種意義上的局部最優解。 貪心算法沒有固定的算法框架&#xff0c;算法設計的關…