<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    把困難踩在腳下

    迎難而上

     

    初寫TCP通信程序

    Tcp通信協議是基于OSI標準協議,有應用層、傳輸層、網絡層、物理層+數據鏈路層。TCP采用三次握手,所謂“三次握手”就是A向B發出連接請求,B向A發出收到消息,然后A向B發出收到消息。這樣可以提高通信連接的可靠性。TCP通信可以用Socket套接字實現,Socket正如它的英文名稱“插座”一樣,兩臺電腦要想實現通信,每臺電腦就是一個插座,用一根虛擬的導線將兩個插座連接一起,就可以實現通信。

    下面看程序:

    先看服務器端:

     

    package com.dr.me; 

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.ServerSocket;
    import java.net.Socket; 

    public class MyServer {
        
    public static void main(String args[]) throws IOException
        
    {
            
    //創建一個ServerSocket對象實例
            ServerSocket  ss=new ServerSocket(1526);
            
    //創建一個Socket實例對象,用來接受客戶端傳過來的Socket
            Socket client=null;
            System.out.println(
    "等待客戶端的連接、、、、、");
            
    //程序運行到此就會阻塞,除非有客戶端連接
            client=ss.accept();
            System.out.println(
    "有客戶連接上了---");
            
    //創建和客戶端的通信通道
            BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintStream out
    =new PrintStream(client.getOutputStream());
            
    //向客戶端輸出信息
            out.println("Hello how are you?");
            
    //關閉輸入輸出流
            in.close();
            out.close();
        }
     

    }
     

    在此程序中首先創建了一個ServerSocket對象,并指明了它的端口,客戶端通過IP和這個端口和服務器端進行連接。程序運行到此:

    client=ss.accept();就不在往下運行直到有客戶端連接上,在繼續往下執行。通過   BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
            PrintStream out=new PrintStream(client.getOutputStream());
    這條語句就和客戶端建立了一根虛擬的通道。

    看客戶端程序:

     

    package com.dr.me; 

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.Socket;
    import java.net.UnknownHostException; 

    public class MyClient {
        
    public static void main(String args[]) throws UnknownHostException, IOException
        
    {
            
    //創建Socket實例對象
            Socket client=new Socket("LocalHost",1526);
            
    //創建String對象用來盛放從服務器端傳過來的信息,起一個緩沖作用
            String str=null;
            
    //和服務器端建立通信連接
            BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
            
    //讀取服務器端發過來的信息放在String對象中
            str=in.readLine();
            
    //把信息輸出到控制臺上
            System.out.println(str);
        }
     

    }
     

    客戶端程序:通過

    Socket client=new Socket("LocalHost",1526);

    新建一個Socket對象,并指明了要向哪臺電腦建立連接及該電腦的端口,“LocalHost”是本臺電腦的IP,也可以寫成“127.0.0.1”,如果和其他電腦連接則改為那臺電腦的IP。端口號一定要和服務器端的客戶端一致,否則出現異常。

    運行時首先啟動服務器端程序,然后再啟動客戶端程序。

    運行結果:

    服務器端控制臺顯示:

    啟動服務器端顯示:

    1

    客戶端連接后顯示:

    3

    客戶端控制臺顯示:

    2

    這個程序只是簡單說明了一下TCP協議,還有很多東西沒有寫出來,有不對的地方希望大家批評指正,沒時間了我還要上課,先寫到這吧。

    posted on 2010-11-12 09:30 馮魁 閱讀(265) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    快樂每一天!

    Everything is an object!

    常用鏈接

    留言簿(2)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产成人 亚洲欧洲| 全免费a级毛片免费看不卡| 羞羞漫画小舞被黄漫免费| 久久亚洲美女精品国产精品| 亚洲精品成人片在线观看| 国产大片线上免费观看| 日本免费大黄在线观看| 久久嫩草影院免费看夜色| 婷婷国产偷v国产偷v亚洲| 77777午夜亚洲| 亚洲人成毛片线播放| 久久亚洲AV午夜福利精品一区| 亚洲欧洲日本在线| 国产午夜影视大全免费观看| 久久国产精品亚洲综合| 亚洲成人影院在线观看| 日本v片免费一区二区三区| 在线观看无码AV网站永久免费| 精品无码AV无码免费专区| 免费在线黄色电影| 精品多毛少妇人妻AV免费久久| 黄色免费网站在线看| 看Aⅴ免费毛片手机播放| 亚洲成a∧人片在线观看无码| 亚洲一级特黄特黄的大片| 亚洲国产成人久久精品app| 亚洲无线电影官网| 亚洲日本一区二区| 亚洲综合久久综合激情久久| 亚洲国产综合专区电影在线 | 亚洲色大情网站www| 亚洲av午夜精品无码专区| 亚洲一卡2卡4卡5卡6卡在线99| 亚洲小说区图片区| 亚洲入口无毒网址你懂的| 亚洲fuli在线观看| 中文日韩亚洲欧美制服| 亚洲av日韩精品久久久久久a| 欧美激情综合亚洲一二区| 在线播放国产不卡免费视频| 亚洲一级黄色大片|