亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        JAVA實(shí)現(xiàn)網(wǎng)絡(luò)通信程序

        2008-12-31 00:00:00薛紅芳
        電腦知識(shí)與技術(shù) 2008年8期

        摘要:java.net中包含了網(wǎng)絡(luò)通信所需要的類,文中主要闡述了使用JAVA編程語言對(duì)基于客戶/服務(wù)器模式的應(yīng)用編寫網(wǎng)絡(luò)通信程序,討論了SOCKET機(jī)制的原理,重點(diǎn)介紹Java中輸入輸出流的概念以及程序?qū)崿F(xiàn)代碼。

        關(guān)鍵詞:JAVA;網(wǎng)絡(luò);SOCKET;APPLET

        中圖法分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)08-10ppp-0c

        網(wǎng)絡(luò)上的系統(tǒng)結(jié)構(gòu)多為客戶/服務(wù)器模式,服務(wù)器端負(fù)責(zé)數(shù)據(jù)和圖像等的存儲(chǔ)、維護(hù)、管理以及傳遞,客戶端則負(fù)責(zé)人機(jī)界面的操作、送出需求及顯示收回的數(shù)據(jù)。

        1 Java中輸入/輸出流概念:

        Java語言的優(yōu)點(diǎn)主要表現(xiàn)在:簡單、面向?qū)ο?、多線程、分布性、體系結(jié)構(gòu)中立、安全性等方面。主要體現(xiàn)在Java實(shí)現(xiàn)了自動(dòng)的垃圾收集,簡化了內(nèi)存管理的工作;提供了簡單的類機(jī)制和動(dòng)態(tài)的構(gòu)架模型;多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作,處理不同的事件;是一種面向網(wǎng)絡(luò)的語言,Java程序能在網(wǎng)絡(luò)的任何地方運(yùn)行,且可防止病毒的入侵。

        過濾流DataInputStream 和DataOutputStream 除了分別作為FilterInputStream和FilterOutputStream的子類外,還分別實(shí)現(xiàn)了接口DataInput 和DataOutput。接口DataInput中定義的方法主要包括從流中讀取基本類型的數(shù)據(jù)、讀取一行數(shù)據(jù)、或者讀取指定長度的字節(jié)數(shù),如readBoolean()、readInt()、readLine()、等。接口DataOutput中定義的方法主要是向流中寫入基本類型的數(shù)據(jù)或者寫入一定長度的字節(jié)數(shù)組,如writeChar()、writeDouble()、DataInputStream可以從所連接的輸入流中讀取與機(jī)器無關(guān)的基本類型數(shù)據(jù),用以實(shí)現(xiàn)一種獨(dú)立于具體平臺(tái)的輸入方式;DataInputStream可以向所連接的輸出流寫入基本類型的數(shù)據(jù)。

        2 Socket機(jī)制

        Socket是面向客戶/服務(wù)器模型設(shè)計(jì)的,網(wǎng)絡(luò)上的兩個(gè)程序通過一個(gè)雙向的通訊連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)雙向鏈路的一端稱為一個(gè)Socket。Socket通常用來實(shí)現(xiàn)客戶方和服務(wù)方的連接。客戶程序可以向Socket寫請求,服務(wù)器將處理此請求,然后通過Socket將結(jié)果返回給用戶。Socket通信機(jī)制提供了兩種通訊方式:有聯(lián)接和無聯(lián)接方式,分別面向不同的應(yīng)用需求。

        3 客戶機(jī)/服務(wù)器通信的實(shí)現(xiàn):

        兩端通過Socket機(jī)制進(jìn)行連接來實(shí)現(xiàn)Application 同 Applet 的通信:正是由于Java系統(tǒng)具有基于Socket的靈活通信機(jī)制,因而其應(yīng)用程序能自由地打開和訪問網(wǎng)絡(luò)上的對(duì)象,就象在本地文件系統(tǒng)中一樣。才能實(shí)現(xiàn)Applet之間的通信: Applet之間的通信使用Applet Context類的getApplet()方法。<applet code=applet1.class width=200 height=200 name=first>只要在程序中加入Applet oneapplet=getAppletContext().getApplet(“first”);便可使用name為first的Applet中的方法了。

        程序如下: import java.io.*; import java.net.*; import java.lang.*; import T2;

        class ThreadEchoHandler extends Thread //創(chuàng)建線程

        { T2 theT2=new T2();Socket incoming; int counter;

        ThreadEchoHandler(Socket i,int c) { incoming=i; counter=c; }

        public void run()

        {try {DataInputStream in=new DataInputStream(incoming.getInputStream());

        DataOutputStream out=new ; DataOutputStream(incoming.getOutputStream());

        System.out.println (\"hello\"); boolean done=1;

        while(!done) { String aa=\"\"; String str=in.readUTF();System.out.println (str);

        theT2.pass(str); theT2.tongji();aa=theT2.guan();

        System.out.println (\"string z is:\"+aa);

        if(aa.compareTo(\"1\")!=0 )

        { out.writeUTF(aa); out.flush();}} incoming.close();}

        catch(IOException e){System.out.println(e);}}}

        class S { public static void main(String[] args)

        { int i=1; ry { ServerSocket s=new ServerSocket(1111); for(;;)

        { Socket incoming=s.accept();System.out.println(\"connect: \"+i);

        new ThreadEchoHandler(incoming,i).start(); i++; }}

        catch(Exception e) { System.out.println(e); } }}

        import java.io.*; import java.net.*; import java.awt.*; import java.applet.*;

        public class Echo extends Applet

        { TextArea ta; Socket echoSocket; DataOutputStream os;

        DataInputStream is; String Line; public void init()

        { setBackground(Color.white); ta=new TextArea(5,80); ta.setEditable(1); add(ta);

        try {echoSocket=new Socket(\"10.102.4.41\",1111);} //與服務(wù)器建立連接

        catch(IOException e) {System.out.println(\"error\"); }}

        public void st(String stri) { try { DataOutputStream os=new

        DataOutputStream(echoSocket.getOutputStream());

        DataInputStream is=new DataInputStream(echoSocket.getInputStream());

        os.writeUTF(\"\"+ stri ); os.flush();}//向服務(wù)器輸送string

        catch(IOException e) {System.out.println(\" error:\"+e); }}

        public String st1() //接收字符串的方法

        {String Line=\"\"; try { DataOutputStream os=new

        DataOutputStream(echoSocket.getOutputStream());

        DataInputStream is=new DataInputStream(echoSocket.getInputStream());

        Line=is.readUTF();ta.appendText(\"\"+Line); }

        catch(IOException e) {System.out.println(\" error:\"+e); } return Line; }}

        4 結(jié)束語

        用JAVA實(shí)現(xiàn)網(wǎng)絡(luò)通信程序 時(shí),在建立Socket連接時(shí),兩端的端口號(hào)必須設(shè)為一致,否則建立不了連接。服務(wù)器端必須有主機(jī)IP地址或主機(jī)名參數(shù)。連接建立好之后應(yīng)確定輸入和輸出流,如果一個(gè)使用某端口的程序沒有關(guān)閉,另一個(gè)程序就不能使用這個(gè)端口。

        參考文獻(xiàn):

        [1]廖雷,等.Java程序設(shè)計(jì)教程[M].中國電力出版社,2003.

        [2]徐迎曉.Java語法及網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)[M].清華大學(xué)出版社,2002.

        [3]謝志華.深入Java Servlet網(wǎng)絡(luò)編程[M].西安:西安電子科技大學(xué)出版社,2001.

        日本50岁丰满熟妇xxxx| 欧美日本国产亚洲网站免费一区二区 | 精品人妻一区二区三区蜜桃| 亚洲精品天堂日本亚洲精品| 日本一二三四高清在线| 国产xxx69麻豆国语对白| 亚洲av有码在线天堂 | 欧美—iGAO视频网| 99久久婷婷国产精品网| 在线视频国产91自拍| 天堂无码人妻精品av一区| 国产极品久久久久极品| 动漫在线无码一区| 一区二区三区在线观看视频| 大香蕉国产av一区二区三区| 久久婷婷色香五月综合缴缴情 | 中国亚洲av第一精品| 久久婷婷五月综合色奶水99啪| 国产又爽又黄又刺激的视频| 午夜丰满少妇性开放视频| a观看v视频网站入口免费| 一本大道综合久久丝袜精品| 一区二区三区最新中文字幕| 痉挛高潮喷水av无码免费| 欧美做受视频播放| 国产真实乱对白在线观看| 一区二区视频资源在线观看| 久久人妻中文字幕精品一区二区| 在线视频夫妻内射| 人与嘼交av免费| 欧美亚洲h在线一区二区| 成人av一区二区亚洲精| 岛国熟女精品一区二区三区| 国产精品无码v在线观看| 十八岁以下禁止观看黄下载链接| 无码天堂在线视频| 国产精品网站91九色| 国产精品无码久久综合网| 中文字幕乱码人妻一区二区三区 | 黄色一区二区三区大全观看| 国产精品videossex国产高清|