<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)

    隨筆檔案

    學習網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV永久无码精品水牛影视| 免费永久看黄在线观看app| 亚洲精品二区国产综合野狼| 四虎国产精品成人免费久久| 亚洲精品视频免费| 久久精品成人免费国产片小草| 亚洲AV成人精品日韩一区18p| 四虎精品成人免费视频| 伊人婷婷综合缴情亚洲五月| 国产美女视频免费观看的网站| 一本久久a久久精品亚洲| a在线免费观看视频| 亚洲精品视频在线免费| 99热在线精品免费全部my| 亚洲精品无码专区| 国产jizzjizz视频免费看| 色屁屁www影院免费观看视频| 亚洲欧洲精品成人久久曰影片| 精品一区二区三区高清免费观看| 亚洲色自偷自拍另类小说| 久久中文字幕免费视频| 国产精品福利在线观看免费不卡| 曰批视频免费30分钟成人| 亚洲熟妇av午夜无码不卡| 国产在线19禁免费观看| 亚洲娇小性xxxx色| 无码精品人妻一区二区三区免费看 | 免费观看无遮挡www的小视频| 亚洲欧洲精品国产区| 精品少妇人妻AV免费久久洗澡| 亚洲人成电影在在线观看网色| 24小时在线免费视频| 亚洲Av永久无码精品黑人| 中国亚洲女人69内射少妇| 欧洲精品99毛片免费高清观看 | 免费成人在线视频观看| 色偷偷女男人的天堂亚洲网| 免费一级成人毛片| 亚洲av无码一区二区三区天堂| 亚洲综合色区在线观看| 亚洲精品国产免费|