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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - Java使用TCP實現(xiàn)數(shù)據(jù)傳輸實例詳解

Java使用TCP實現(xiàn)數(shù)據(jù)傳輸實例詳解

2020-11-11 16:50Alex_zhuang Java教程

這篇文章主要介紹了Java使用TCP實現(xiàn)數(shù)據(jù)傳輸實例詳解的相關(guān)資料,需要的朋友可以參考下

Java使用TCP實現(xiàn)數(shù)據(jù)傳輸實例詳解

TCP所提供服務(wù)的主要特點:

  1.面向連接的傳輸;
  2.端到端的通信;
  3.高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序;
  4.全雙工方式傳輸;
  5.采用字節(jié)流方式,即以字節(jié)為單位傳輸字節(jié)序列;
  6.緊急數(shù)據(jù)傳送功能。

TCP傳輸需要建立客戶端和服務(wù)器端,即Socket和Server Socket , 建立連接后,通過Socket中的IO流進行數(shù)據(jù)的傳輸 。傳輸結(jié)束后關(guān)閉Socket。

客戶端和服務(wù)器端是兩個獨立的應(yīng)用程序。

以下是實現(xiàn)基本的TCP數(shù)據(jù)傳輸?shù)腄emo code:

?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package javase.day18;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
 
public class TransTextDemo {
  public static void main(String[] args) {
  }
 
}
 
class TcpClient2{
  public static void main(String[] args) throws Exception{
    System.out.println("client start...");
    Socket s = new Socket("192.168.1.2",10005);
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    String sendDataStr=null;
    while((sendDataStr=br.readLine())!=null){
      if(sendDataStr.equals("bye")){
        break;
      }
      bw.write(sendDataStr);
      bw.newLine();
      bw.flush();
    }
    bw.close();
  }
}
 
class TcpServer2{
  public static void main(String[] args) throws Exception{
    System.out.println("server start...");
    ServerSocket ss = new ServerSocket(10005);
    Socket s = ss.accept();
    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    String receiveDataStr=null;
    while((receiveDataStr=br.readLine())!=null){
      if(receiveDataStr.equals("bye")){
        break;
      }
      System.out.println("receive data:"+receiveDataStr);
    }
  }
}

使用TCP實現(xiàn)文本文件上傳的Demo code:

?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package javase.day18;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
 
public class UploadText {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
 
  }
}
 
 
 
class TextServer{
  public static void main(String[] args) throws Exception{
    System.out.println("Server start...");
    ServerSocket ss = new ServerSocket(10008);
    Socket s = ss.accept();
    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
    PrintWriter out = new PrintWriter(new FileWriter("C:\\java_test\\server.txt"),true);
    String line=null;
    while((line=br.readLine())!=null){
      System.out.println(line);
      out.println(line);
    }
     
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(s.getOutputStream()),true);
    pw.println("upload successful");
    pw.close();
    s.close();
    ss.close();
  }
}
 
 
class TextClient{
  public static void main(String[] args) throws Exception{
    System.out.println("Client start...");
    Socket clientSocket = new Socket("192.168.1.2",10008);
    BufferedReader br = new BufferedReader(new FileReader("C:\\java_test\\SystemDemo.java"));
    PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
    String line=null;
    while((line=br.readLine())!=null){
      System.out.println(line);
      out.println(line);
    }
    clientSocket.shutdownOutput();
    BufferedReader br2 = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
    String confirmMsgStr=br2.readLine();
    System.out.println(confirmMsgStr);
    br2.close();
    clientSocket.close();
     
  }
}

實現(xiàn)圖片上傳的Demo code:

?
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package javase.day18;
 
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
 
public class UploadImage {
 
  public static void main(String[] args) {
 
  }
 
}
 
class ImageClient{
  public static void main(String[] args) throws Exception{
    Socket imageClientSocket = new Socket("192.168.1.2",10010);
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\java_test\\client\\生活用品01.jpg"));
    BufferedOutputStream bos = new BufferedOutputStream(imageClientSocket.getOutputStream());
    byte[] buf = new byte[1024*100];
    int len = 0 ;
    while((len=bis.read(buf))!=-1){
      bos.write(buf,0,len);
    }
    imageClientSocket.shutdownOutput();
    BufferedInputStream bis2 = new BufferedInputStream(imageClientSocket.getInputStream());
    byte[] buf2 = new byte[1024];
    int len2 = 0 ;
    while((len2=bis2.read(buf2))!=-1){
      System.out.println(new String(buf2,0,len2));
    }
    bis.close();
    imageClientSocket.close();
     
  }
}
 
class ImageServer{
  public static void main(String[] args) throws Exception{
    ServerSocket ss = new ServerSocket(10010);
    Socket s = ss.accept();
    BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\java_test\\server\\生活用品01.jpg"));
    byte[] buf = new byte[1024*100];
    int len = 0 ;
    while((len=bis.read(buf))!=-1){
      bos.write(buf, 0, len);
    }
    BufferedOutputStream bos2 = new BufferedOutputStream(s.getOutputStream());
    bos2.write("upload successful".getBytes());
    bos2.close();
    s.close();
    ss.close();
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/alex_zhuang/article/details/6945650

延伸 · 閱讀

精彩推薦
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
主站蜘蛛池模板: 亚洲在线视频 | 国产美女久久 | 亚洲视频在线观看 | 国产乱码久久久久久一区二区 | 亚洲高清免费视频 | 久久精品一区二区三区四区 | 久久小视频 | 韩日一区二区三区 | 久久久影院 | 亚洲福利国产 | 精品中文字幕一区 | 日本三级韩国三级三级a级中文 | 国产成人一区二区三区 | 国产色区 | 国产精品视频免费观看 | 亚洲一区欧美一区 | 国产精品欧美一区二区三区不卡 | 12306影视午夜入口 | 中文字幕一区二区三区乱码在线 | 亚洲一区二区三区久久久 | 亚洲精品电影在线观看 | 97人人草| 天堂欧美城网站网址 | 国产精品一区av | 国产精品美女久久久av超清 | 日本高清视频在线播放 | 精品久久久久久久久久久久 | 日本在线观看网址 | 欧美伦理一区二区三区 | 精品久久97| 曰批免费视频播放免费 | 这里只有精品国产 | 国产午夜精品一区二区三区嫩草 | 毛片在线观看网站 | 久久久性色精品国产免费观看 | 成人爽a毛片一区二区免费 日韩av高清在线 | 免费成人高清在线视频 | 久久国产区 | 欧美一二三 | 免费观看国产视频在线 | 婷婷久久五月 |