全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java使用TCP实现数据传输实例详解

Java使用TCP实现数据传输实例详解

TCP所提供服务的主要特点:

  1.面向连接的传输;
  2.端到端的通信;
  3.高可靠性,确保传输数据的正确性,不出现丢失或乱序;
  4.全双工方式传输;
  5.采用字节流方式,即以字节为单位传输字节序列;
  6.紧急数据传送功能。

TCP传输需要建立客户端和服务器端,即Socket和Server Socket , 建立连接后,通过Socket中的IO流进行数据的传输 。传输结束后关闭Socket。

客户端和服务器端是两个独立的应用程序。

以下是实现基本的TCP数据传输的Demo code:

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实现文本文件上传的Demo code:

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(); 
     
  } 
} 

实现图片上传的Demo code:

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(); 
  } 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java使用TCP实现数据传输  # java  # tcp传输  # 实现了基于TCP的Java Socket编程实例代码  # Java实现Socket的TCP传输实例  # Java基于Tcp协议的socket编程实例  # Java基于TCP方式的二进制文件传输  # Java编程实现多线程TCP服务器完整实例  # 基于java TCP网络通信的实例详解  # Java网络编程之TCP通信完整代码示例  # JAVA编程实现TCP网络通讯的方法示例  # Java面试基础之TCP连接以及其优化  # 生活用品  # 流进  # 客户端  # 希望能  # 所提供  # 谢谢大家  # 主要特点  # 即以  # 应用程序  # 图片上传  # 端到  # 文件上传  # 行数  # 高可靠性  # 全双工  # 结束后  # System  # Exception  # client  # println 


相关文章: 如何配置IIS站点权限与局域网访问?  如何使用Golang table-driven基准测试_多组数据测量函数效率  ,如何利用word制作宣传手册?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  建站主机选哪家性价比最高?  建站ABC备案流程中有哪些关键注意事项?  平台云上自主建站:模板化设计与智能工具打造高效网站  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  建站主机系统SEO优化与智能配置核心关键词操作指南  XML的“混合内容”是什么 怎么用DTD或XSD定义  湖北网站制作公司有哪些,湖北清能集团官网?  开封网站制作公司,网络用语开封是什么意思?  如何通过VPS建站实现广告与增值服务盈利?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何在云虚拟主机上快速搭建个人网站?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  专业公司网站制作公司,用什么语言做企业网站比较好?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何快速搭建高效服务器建站系统?  盐城做公司网站,江苏电子版退休证办理流程?  如何通过智能用户系统一键生成高效建站方案?  设计网站制作公司有哪些,制作网页教程?  招商网站制作流程,网站招商广告语?  如何获取PHP WAP自助建站系统源码?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何通过主机屋免费建站教程十分钟搭建网站?  如何基于云服务器快速搭建个人网站?  清除minerd进程的简单方法  建站之星官网登录失败?如何快速解决?  如何用好域名打造高点击率的自主建站?  如何彻底删除建站之星生成的Banner?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何快速搭建高效可靠的建站解决方案?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何通过宝塔面板实现本地网站访问?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何快速生成ASP一键建站模板并优化安全性?  营销式网站制作方案,销售哪个网站招聘效果最好?  ,怎么在广州志愿者网站注册?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何在万网ECS上快速搭建专属网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  css网站制作参考文献有哪些,易聊怎么注册? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。