国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java網絡編程之TCP通信完整代碼示例

Java網絡編程之TCP通信完整代碼示例

2021-03-02 10:42溫布利往事 Java教程

這篇文章主要介紹了Java網絡編程之TCP通信完整代碼示例,具有一定借鑒價值,需要的朋友可以了解下。

一、概述

  socket類是java執行客戶端tcp操作的基礎類,這個類本身使用代碼通過主機操作系統的本地tcp棧進行通信。socket類的方法會建立和銷毀連接,設置各種socket選項。

  serversocket類是java執行服務器端操作的基礎類,該類運行于服務器,監聽入站tcp連接,每個socket服務器監聽服務器的某個端口,當遠程主機的客戶端嘗試連接此端口時,服務器就被喚醒,并返回一個表示兩臺主機之間socket的正常socket對象。

二、什么是tcp?  

  tcp是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。tcp通信分為客戶端和服務器端,對應的對象是分別是socket和serversocket。

  當一臺計算機需要與另一臺遠程計算機連接時,tcp協議會讓他們建立一個連接:用于發送和接收數據的虛擬鏈路。tcp協議負責收集信息包,并將其按適當的次序放好傳送,在接收端收到后再將其正確的還原。為了保證數據包在傳送中準確無誤,tcp使用了重發機制:當一個通信實體發送一個消息給另一個通信實體后需要收到另一個實體的確認信息,如果沒有收到確認信息,則會再次重發剛才發送的信息。

Java網絡編程之TCP通信完整代碼示例

三、tcp通信

  1、構造函數

  socket類實現客戶端套接字,通過構造函數可以指定希望連接的主機和端口。主機可以指定為inetaddress或string,端口始終指定為0到65535之間的int值。

?
1
socket s=new socket("127.0.0.1", 10001);//創建一個流套接字并將其連接到指定主機上的指定端口號

serversocket類實現服務器套接字。服務器套接字等待請求通過網絡傳入,它基于該請求執行某些操作,然后向請求者返回結果。

?
1
serversocket ss=new serversocket(10001);//創建綁定到特定端口的服務器套接字

2、例子:tcp文件復制

  客戶端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class clientdemo
{
    public static void main(string[] args) throws unknownhostexception, ioexception
      {
        socket s=new socket("127.0.0.1", 10004);
        bufferedreader buf = new bufferedreader(new filereader("c:\\users\\administrator\\desktop\\1.txt"));
        string line=null;
        /*printwriter out=new printwriter(s.getoutputstream(),true);
    while((line=buf.readline())!=null)
    {
      out.println(line);
    }
    */
        bufferedwriter out=new bufferedwriter(new outputstreamwriter(s.getoutputstream()));
        while((line=buf.readline())!=null)
            {
            out.write(line);
            out.newline();
            out.flush();
        }
        s.shutdownoutput();
        bufferedreader in=new bufferedreader(new inputstreamreader(s.getinputstream()));
        string str=in.readline();
        system.out.println(str);
        s.close();
        buf.close();
    }
}

服務器端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class serverdemo
{
    public static void main(string[] args) throws ioexception
      {
        serversocket ss=new serversocket(10004);
        socket s=ss.accept();
        bufferedreader in=new bufferedreader(new inputstreamreader(s.getinputstream()));
        string line=null;
        /*printwriter buf=new printwriter(new filewriter("c:\\users\\administrator\\desktop\\2.txt"),true);
    while((line=in.readline())!=null)
    
      buf.println(line);
    }*/
        bufferedwriter buf=new bufferedwriter(new filewriter("c:\\users\\administrator\\desktop\\2.txt"));
        while((line=in.readline())!=null)
            {
            buf.write(line);
            buf.newline();
            buf.flush();
        }
        printwriter out=new printwriter(s.getoutputstream(),true);
        out.println("傳輸成功!");
        ss.close();
        buf.close();
    }
}

四、socket在瀏覽上的應用

  我們可以在eclipse中編寫服務器端,然后利用瀏覽器進行訪問。

  eg、服務器端代碼為:

?
1
2
3
4
5
6
7
8
9
10
11
public class socketserver
{
  public static void main(string[] args) throws ioexception
  {
    serversocket server=new serversocket(11000);
    socket client=server.accept();
    printwriter out=new printwriter(client.getoutputstream(),true);
    out.println("你好!");
    server.close();
  }
}

然后打開ie瀏覽器,在地址中輸入http://192.168.1.120:11000/(192.168.1.120為本機ip地址),結果顯示為

Java網絡編程之TCP通信完整代碼示例

在正常的應用中,瀏覽器是向tomacat服務器發出請求,以得到網頁圖片等資源。而tomca就是用java寫的服務器端軟件。

  現在我們編寫服務器端為:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class socketserver
{
  public static void main(string[] args) throws ioexception
  {
    serversocket server=new serversocket(11000);
    socket client=server.accept();
    printwriter out=new printwriter(client.getoutputstream(),true);
    bufferedreader in=new bufferedreader(new inputstreamreader(client.getinputstream()));
    string line=null;
    while((line=in.readline())!=null)
      system.out.println(line);
    out.println("你好!");
    server.close();
  }
}

然后在利用瀏覽器訪問,可以看到瀏覽器(客戶端)發給服務器端的請求頭數據為:

Java網絡編程之TCP通信完整代碼示例

利用上述原理,我們可以自己編寫類似ie的瀏覽器端(客戶端)軟件。首先在tomcat的安裝目錄c:\apache-tomcat-7.0.62\webapps\myweb中添加一個demo.html資源,然后編寫客戶端,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class clientdemo
{
    public static void main(string[] args) throws unknownhostexception, ioexception
      {
        socket s=new socket("192.168.1.120",8080);
        printwriter out=new printwriter(s.getoutputstream(),true);
        //將請求頭發給服務器
        out.println("get /myweb/demo.html http/1.1");
        out.println("accept:*/*");
        out.println("host: 192.168.1.120:11000");
        out.println("connection: keep-alive");
        //輸出空行,此步驟不可少
        out.println();
        bufferedreader in=new bufferedreader(new inputstreamreader(s.getinputstream()));
        string line=null;
        //返回服務器的響應文件
        while((line=in.readline())!=null)
            {
            system.out.println(line);
        }
        s.close();
    }
}

接下來,啟動tomcat。即雙擊c:\apache-tomcat-7.0.62\bin中startup.bat文件。然后運行上述客戶端代碼,此時可以看到tomacat返回的響應數據:

Java網絡編程之TCP通信完整代碼示例

總結

以上就是本文關于java網絡編程之tcp通信完整代碼示例的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:https://www.cnblogs.com/xujian2014/p/4660570.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黄色毛片在线看 | 日韩理论在线 | 影音先锋中文字幕一区 | 国产亚洲精品一区二区 | 综合久| 久久久精品国产99久久精品芒果 | 久久久婷婷 | 日韩超级大片免费看国产国产播放器 | 中文字幕高清一区 | 国产成人一区二区 | 欧美色图亚洲 | 欧美怡红院视频一区二区三区 | 久久久一区二区三区 | 亚洲天堂av网 | 免费av电影网站 | 女人色网 | 中文字幕 亚洲一区 | 婷婷综合久久 | 在线观看亚洲专区 | 日韩综合一区 | 国产91视频在线观看 | 久久久久久久一区 | 狠狠干很很操 | 国内成人综合 | 色婷婷久久 | 黄色免费观看网址 | 欧美亚洲视频在线观看 | 欧美专区在线 | 亚洲精品一区二区三区在线 | 青青草免费在线 | 国产精品久久久久久一区二区三区 | 亚洲欧美日韩在线 | 欧美一区二区三区久久久久久桃花 | 免费观看黄色 | 一级毛片免费看 | 在线理论电影 | 91精品国产九九九久久久亚洲 | 午夜国产视频 | 国产成人久久一区二区三区 | 精品少妇一区二区三区日产乱码 | 欧美日韩视频在线第一区 |