全网整合营销服务商

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

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

JAVA编程实现TCP网络通讯的方法示例

本文实例讲述了JAVA编程实现TCP网络通讯的方法。分享给大家供大家参考,具体如下:

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

由IETF的RFC 793定义,在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。

基于TCP网络通讯实现的类主要有服务器端的ServerSocket用客户端的Socket。

通讯流程:

打开服务器,等待客户端连接-->客户端连接上服务器-->数据通讯。

代码实现步骤:

1. 创建服务器端(ServerSocket)对象或客户端(Socket)对象。
2. 建立起服务器与客户端连接
3. 通过输入输出流进行文件(数据)通讯
4. 通讯结束 ,关闭资源 。

一个简单的小例子,服务端:

public class SocketServer {
  public static void main(String[] args) {
    try {
      // 创建一个服务器ServerSocket,并指定端口号为5120
      ServerSocket mServerSocket = new ServerSocket(5120);
      // 等待客户端连接
      Socket socket = mServerSocket.accept();
      // 连接上客户端后,获取客户端输入流信息
      InputStream is = socket.getInputStream();
      // 通过获取缓冲数据方式来读取文本信息
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      // 获取文本信息
      String line;
      StringBuffer sb = new StringBuffer();
      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      System.out.println(sb.toString());
      socket.shutdownInput();
      // 收到客户端信息后,回复客户端信息
      OutputStream os = socket.getOutputStream();
      PrintWriter pw = new PrintWriter(os);
      pw.write("收到回复,我是服务端");
      pw.flush();
      // 关闭流通常放在finally中操作
      os.close();
      br.close();
      is.close();
      pw.close();
      socket.close();
      mServerSocket.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

客户端:

public class ClientSocket {
  public static void main(String[] args) {
    try {
      // 创建客户端Socket,指定主机和端口
      Socket mSocket = new Socket("localhost", 5120);
      // 通过输入流向服务器发数据
      OutputStream os = mSocket.getOutputStream();
      PrintWriter pw = new PrintWriter(os);
      pw.write("来自客户端Socket的数据,你收到了吗?");
      pw.flush();
      mSocket.shutdownOutput();
      // 收取服务端的回复信息
      InputStream is = mSocket.getInputStream();
      // 通过获取缓冲数据方式来读取文本信息
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      // 获取文本信息
      String line;
      StringBuffer sb = new StringBuffer();
      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      System.out.println(sb.toString());
      // 关闭流通常放在finally中操作
      br.close();
      is.close();
      pw.close();
      os.close();
      mSocket.close();
    } catch (UnknownHostException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

运行时,要先启动服务端,然后启动客记户端,通常网络通讯会与多线程交织在一起。

更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# JAVA  # TCP  # 网络通讯  # JAVA编程实现UDP网络通讯的方法示例  # 基于Java网络编程和多线程的多对多聊天系统  # java Hibernate多对多映射详解及实例代码  # Java实现多对多网络通讯的流程  # 客户端  # 服务端  # 放在  # 流进  # 操作技巧  # 我是  # 是一种  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 要先  # 建立起  # 收到了  # 更多关于  # 所述  # 创建一个  # 程序设计  # 多线程  # 端口号 


相关文章: 网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何在服务器上三步完成建站并提升流量?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  内部网站制作流程,如何建立公司内部网站?  大型企业网站制作流程,做网站需要注册公司吗?  如何用低价快速搭建高质量网站?  如何快速搭建响应式可视化网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  公众号网站制作网页,微信公众号怎么制作?  音乐网站服务器如何优化API响应速度?  css网站制作参考文献有哪些,易聊怎么注册?  建站之星安装需要哪些步骤及注意事项?  小型网站建站如何选择虚拟主机?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何在橙子建站中快速调整背景颜色?  建站之星如何防范黑客攻击与数据泄露?  外贸公司网站制作哪家好,maersk船公司官网?  如何在IIS7中新建站点?详细步骤解析  如何撰写建站申请书?关键要点有哪些?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  制作表格网站有哪些,线上表格怎么弄?  详解jQuery停止动画——stop()方法的使用  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  西安大型网站制作公司,西安招聘网站最好的是哪个?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  开源网站制作软件,开源网站什么意思?  建站之星伪静态规则如何设置?  公司网站设计制作厂家,怎么创建自己的一个网站?  建站VPS能否同时实现高效与安全翻墙?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  如何快速查询域名建站关键信息?  网站专业制作公司有哪些,做一个公司网站要多少钱?  黑客入侵网站服务器的常见手法有哪些?  建站之星如何取消后台验证码生成?  宝塔新建站点报错如何解决?  如何选择服务器才能高效搭建专属网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  网站制作模板下载什么软件,ppt模板免费下载网站?  如何确保FTP站点访问权限与数据传输安全?  如何挑选优质建站一级代理提升网站排名?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  在线教育网站制作平台,山西立德教育官网?  Bpmn 2.0的XML文件怎么画流程图  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站之星如何优化SEO以实现高效排名? 

您的项目需求

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