热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

javaTcp通信客户端与服务器端实例

这篇文章主要介绍了javaTcp通信客户端与服务器端,结合完整实例形式详细分析了java基于tcp的网络通信客户端与服务器端具体实现技巧,需要的朋友可以参考下

本文实例讲述了java Tcp通信客户端与服务器端。分享给大家供大家参考,具体如下:

由服务器端发送数据

服务器端:

import java.io.*;
import java.net.*;
public class TestSocket {
 public static void main(String[] args) {
 try {
  ServerSocket ss = new ServerSocket(8888);
  while(true) {
  Socket s = ss.accept();
  OutputStream os = s.getOutputStream();
  DataOutputStream dos = new DataOutputStream(os);
  dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
  dos.close();
//  os.flush();
  os.close();
//  s.close();
  }
 } catch (IOException e) {
  e.printStackTrace();
  System.out.println("there is a wrong");
 }
 }
}

用户端:

import java.io.*;
import java.net.*;
public class TestClient {
 public static void main(String[] args){
 try {
  Socket s = new Socket("127.0.0.1",8888);
  DataInputStream dis = new DataInputStream(s.getInputStream());
  System.out.println(dis.readUTF()); 
  s.close();
  dis.close();
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
}

无论是客户端还是服务器端都可以收发数据。

交互型

用户端

import java.io.*;
import java.net.*;
public class TestClient2 {
 public static void main(String[] args){
 try {
  Socket s = new Socket("127.0.0.1",8886);
  DataOutputStream dos = new DataOutputStream(s.getOutputStream());
  DataInputStream dis = new DataInputStream(s.getInputStream());
  System.out.println(dis.readUTF()); 
  dos.writeUTF("hey");
  String str = null;
  if((str = dis.readUTF()) != null) {
  System.out.println(str);
  }
  s.close();
  dis.close();
  dos.close();
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
}

服务器端:

public class TestServer2 {
 public static void main(String[] args) {
 InputStream in = null;
 OutputStream out = null;
 try {
  ServerSocket ss = new ServerSocket(8886);
  while(true) {
  Socket s = ss.accept();
  in = s.getInputStream();
  out = s.getOutputStream();
  DataOutputStream dos = new DataOutputStream(s.getOutputStream());
  DataInputStream dis = new DataInputStream(s.getInputStream());
  String str = null;
  if((str = dis.readUTF() )!= null) {
   System.out.println(str);
   System.out.println("form " + s.getInetAddress());
   System.out.println("port " + s.getPort());
//   dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
  }
  dos.writeUTF("hi hello");
  dis.close();
  dos.close();
  s.close();
  }
 } catch (IOException e) {
  e.printStackTrace();
  System.out.println("there is a wrong");
 }
 }
}

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

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


推荐阅读
  • 为了评估精心优化的模型与策略在实际环境中的表现,Google对其实验框架进行了全面升级,旨在实现更高效、更精准和更快速的在线测试。新的框架支持更多的实验场景,提供更好的数据洞察,并显著缩短了实验周期,从而加速产品迭代和优化过程。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 在数据库事务处理中,InnoDB 存储引擎提供了多种隔离级别,其中 READ COMMITTED 和 REPEATABLE READ 是两个常用的选项。本文详细对比了这两种隔离级别的特点和差异,不仅从理论角度分析了它们对“脏读”和“幻读”的处理方式,还结合实际应用场景探讨了它们在并发控制和性能表现上的不同。特别关注了行锁机制在不同隔离级别下的行为,为开发者选择合适的隔离级别提供了参考。 ... [详细]
  • 设计模式详解:模板方法模式的应用与实现
    模板方法模式是一种行为设计模式,通过定义一个操作中的算法骨架,将具体步骤的实现延迟到子类中。本文详细解析了模板方法模式的类图结构、实现方式以及挂钩机制,并结合实际案例进行了深入探讨。此外,文章还提供了丰富的参考资料,帮助读者更好地理解和应用这一设计模式。对于手机用户,建议横屏阅读以获得更佳的阅读体验。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 本文深入探讨了基于前序遍历和中序遍历结果重构二叉树的算法。假设输入的前序遍历和中序遍历序列中均无重复数字,通过具体示例如前序遍历序列 {1, 2, 4, 7, 3, 5, 6, 8} 和中序遍历序列,详细解析了如何逐步重建原始二叉树结构。文章不仅提供了理论分析,还结合实际代码实现,帮助读者全面理解该算法的核心原理和应用方法。 ... [详细]
  • 本文源自极分享,详细内容请参阅原文。技术债务如同信用卡负债,随着时间推移,修复成本会越来越高,因此程序员必须对此有深刻认识。此外,团队应致力于培养一种持续维护和优化代码的文化,以减少技术债务的累积。 ... [详细]
  • ZAB算法:实现强一致性的分布式协调机制
    ZAB算法:实现强一致性的分布式协调机制 ... [详细]
  • 本文详细解析了LeetCode第215题,即高效寻找数组中前K个最大元素的问题。通过使用快速选择算法(partition),可以在平均时间复杂度为O(N)的情况下完成任务。本文不仅提供了算法的具体实现步骤,还深入探讨了partition算法的工作原理及其在不同场景下的应用,帮助读者更好地理解和掌握这一高效算法。 ... [详细]
  • 计算机图形学基础:辐照度学原理与应用综述
    辐照度(irradiance)是指单位面积上接收到的电磁辐射功率,可视为入射点处的能量密度。在计算机图形学领域,辐照度计算是确定场景中每个位置光照效果的关键步骤。通过对辐照度的精确建模,可以实现更加逼真的光照渲染,提升视觉效果的真实感和沉浸感。本文综述了辐照度的基本原理及其在计算机图形学中的多种应用,探讨了当前研究的热点和技术挑战。 ... [详细]
  • 本文深入探讨了 MySQL 中 `ANALYZE TABLE` 和 `SHOW CREATE TABLE` 的语法规则及其应用。`ANALYZE TABLE` 语句用于分析并存储表的关键字分布情况,以优化查询性能。该操作在执行过程中会获取表的读锁,确保数据的一致性。而 `SHOW CREATE TABLE` 则用于显示创建表时的详细语句,包括表结构、索引和存储引擎等信息,有助于数据库管理和维护。通过这些命令,DBA 可以更好地理解和优化数据库性能。 ... [详细]
  • 限时精选:深入解析字节跳动Java程序性能优化全攻略,这才是真正的高手之道
    深入探讨如何通过优化代码质量来显著提升字节跳动Java程序的性能和稳定性。本文将详细介绍性能优化的全过程,包括细致的分析、精准的优化策略以及反复的实验验证,帮助开发者掌握真正的高手之道。 ... [详细]
  • 在Python编程语言中,字符串被视为不可变的Unicode字符序列。本文将详细介绍四种用于获取字符串长度的方法,并提供相应的代码示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在HDU 1166敌军布阵问题中,通过运用线段树数据结构,可以高效地计算指定区间的敌军数量。该算法不仅能够在限定的时间和内存条件下快速求解,还能够灵活应对动态变化的战场局势,为实时决策提供支持。 ... [详细]
  • 本文探讨了基于点集估算图像区域的Alpha形状算法在Python中的应用。通过改进传统的Delaunay三角剖分方法,该算法能够生成更加灵活和精确的形状轮廓,避免了单纯使用Delaunay三角剖分时可能出现的过大三角形问题。这种“模糊Delaunay三角剖分”技术不仅提高了形状的准确性,还增强了对复杂图像区域的适应能力。 ... [详细]
author-avatar
75712533_6bdc45_141
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有