使用 DatagramSocket(int port) 建立socket(套間字)服務(wù)。
創(chuàng)新互聯(lián)建站主營(yíng)北林網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),北林h5微信平臺(tái)小程序開發(fā)搭建,北林網(wǎng)站營(yíng)銷推廣歡迎北林等地區(qū)企業(yè)咨詢
將數(shù)據(jù)打包到DatagramPacket中去
通過socket服務(wù)發(fā)送 (send()方法)
關(guān)閉資源
public static void main(String[] args) {
DatagramSocket ds = null; //建立套間字udpsocket服務(wù)
try {
ds = new DatagramSocket(8999); //實(shí)例化套間字,指定自己的port
} catch (SocketException e) {
System.out.println("Cannot open port!");
System.exit(1);
}
byte[] buf= "Hello, I am sender!".getBytes(); //數(shù)據(jù)
InetAddress destination = null ;
try {
destination = InetAddress.getByName("192.168.1.5"); //需要發(fā)送的地址
} catch (UnknownHostException e) {
System.out.println("Cannot open findhost!");
System.exit(1);
}
DatagramPacket dp =
new DatagramPacket(buf, buf.length, destination , 10000);
//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的端口,不同于自己的端口?。?/p>
try {
ds.send(dp); //發(fā)送數(shù)據(jù)
} catch (IOException e) {
}
ds.close();
}
}
接收步驟:
使用 DatagramSocket(int port) 建立socket(套間字)服務(wù)。(我們注意到此服務(wù)即可以接收,又可以發(fā)送),port指定監(jiān)視接受端口。
定義一個(gè)數(shù)據(jù)包(DatagramPacket),儲(chǔ)存接收到的數(shù)據(jù),使用其中的方法提取傳送的內(nèi)容
通過DatagramSocket 的receive方法將接受到的數(shù)據(jù)存入上面定義的包中
使用DatagramPacket的方法,提取數(shù)據(jù)。
關(guān)閉資源。
import java.net.*;
public class Rec {
public static void main(String[] args) throws Exception {
DatagramSocket ds = new DatagramSocket(10000); //定義服務(wù),監(jiān)視端口上面的發(fā)送端口,注意不是send本身端口
byte[] buf = new byte[1024];//接受內(nèi)容的大小,注意不要溢出
DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定義一個(gè)接收的包
ds.receive(dp);//將接受內(nèi)容封裝到包中
String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出內(nèi)容
System.out.println(data);//打印內(nèi)容
ds.close();//關(guān)閉資源
}
}
下載一個(gè)jar包,放在lib目錄下面,然后再把這個(gè)jar加入到項(xiàng)目里面就可以了,右鍵add as libary,就可以引用源代碼了
1。先搞清楚要在哪種類型的程序中調(diào)用掃描儀
如果開發(fā)的程序是java application或者基于 swing的程序,可以算作是單機(jī)或者 c/s架構(gòu)的程序,applet和java fx技術(shù)也可以這么算,因?yàn)槎际侵苯油ㄟ^java程序去操控掃描儀設(shè)備。
如果是基于瀏覽器的應(yīng)用,即b/s架構(gòu)的程序,掃描圖像的工作是在客戶端完成的,這種情況下Java程序其實(shí)是接收和保存掃描儀讀取的圖像結(jié)果,并不需要直接的控制掃描儀工作,這一點(diǎn)上和c/s架構(gòu)的程序有本質(zhì)的區(qū)別。
2。架構(gòu)與技術(shù)應(yīng)用
2.1 c/s架構(gòu)程序的掃描儀調(diào)用
c/s架構(gòu)需要通過java代碼直接操控掃描儀設(shè)備,java語言本身被設(shè)計(jì)為跨o/s平臺(tái),對(duì)特定平臺(tái)的硬件操控能力有限,因此需要借助外部技術(shù)實(shí)現(xiàn)掃描儀控制調(diào)用,可以通過jni(java原生應(yīng)用程序接口) 技術(shù)去實(shí)現(xiàn)掃描儀調(diào)用,具體的細(xì)節(jié)實(shí)現(xiàn)就是jni中定義掃描儀操作方法,如scan()等方法,然后使用javah生成c語言的.h頭文件,然后使用vc等編程語言去實(shí)現(xiàn)jni接口方法。
在windows平臺(tái)和mac平臺(tái)上面,操作掃描儀都可以通過twain協(xié)議
總之c/s架構(gòu)的java程序調(diào)用掃描儀通過jni+twain編程既可完成。
2.2 b/s架構(gòu)程序的掃描儀調(diào)用
b/s架構(gòu)的掃描儀調(diào)用在前面已經(jīng)提到過,java程序?qū)崿F(xiàn)上做的事情是接收掃描結(jié)果圖像數(shù)據(jù) ,例如在struts2的 action中或者jsp/servlet等等程序中接收掃描儀圖像掃描結(jié)果,真實(shí)的客戶端掃描儀調(diào)用應(yīng)該借助客戶端技術(shù)去實(shí)現(xiàn)。
在Linux中的Mozilla瀏覽器中如何調(diào)用掃描儀掃描圖像呢?這個(gè)著實(shí)是個(gè)難題,需要做Mozilla的插件才可以,但是在windows平臺(tái)有ActiveX技術(shù)供程序員使用,因此瀏覽器是在windows平臺(tái)中的話借助Activex技術(shù)即可擴(kuò)展瀏覽器能力。
import?java.util.Scanner;
public?class?Tese1{
{
public?static?void?main?(?String[]?args?)
{
Scanner?in?=?new?Scanner?(System.in);
System.out.println?("請(qǐng)輸入你的姓名");
String?name?=?in.next?();
System.out.println?("姓名:"?+?name);
System.out.println?("請(qǐng)輸入你的年齡");
int?age?=?in.nextInt?();
System.out.println?("年齡:"?+?age);
System.out.println?("請(qǐng)輸入你的性別");
String?xb?=?in.next?();
System.out.println?("性別:"?+?xb);
in.close?();
}
}
System.in是來自控制臺(tái)的輸入
Scanner cin = new Scanner(System.in);
Scanner可以使用正則表達(dá)式來分析基本類型和字符串的簡(jiǎn)單文本掃描器,
構(gòu)造完畢你就可以從控制臺(tái)輸入一些東西給java了
譬如int input = cin.nextInt();
Scanner是jdk1.5新增的一個(gè)類,使用該類可創(chuàng)建一個(gè)對(duì)象,Scanner scan=new Scanner(System.in);意思是聲明一個(gè)Scanner類的對(duì)象,并實(shí)例化,system.in即接收鍵盤輸入。
網(wǎng)頁題目:java掃描儀代碼,java掃描儀的作用
鏈接地址:http://aaarwkj.com/article12/dsiiogc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站改版、品牌網(wǎng)站制作、電子商務(wù)、標(biāo)簽優(yōu)化、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)