`
yogreen
  • 浏览: 710 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java Socket编程——之基础篇

    博客分类:
  • Java
阅读更多
    Socket是CPU进程通信链路的基础组件,概念最初来自于贝尔实验室的Unix系统项目组。Java的创始者们都是Unix的拥趸,所以Java对Socket的支持是纯天然的。Java的web应用服务器在互联网应用产品中一家独大,持续引领了20多年,都只是唯一没有之一。每个服务器通信交互的核心组件实现都是围绕着Socket来展开的----Weblogic、Websphere、JBoss、Tomcat、Jetty、HDFS/Hbase/zookeeper等等,架构上都存在着差异,可都殊路同归。
一、Socket java API基础
    Java中Socket是C/S结构的,C/S的概念就是Client端和Server端,Java Socket的服务端API是ServerSocket,似乎Socket就理所当然是Client的概念了(然而,打住,确切地说应该叫endpoint。概念相关的理解很熬人,纠结概念让人面红脖子粗、寝食难安,那就这么着了,爱谁谁谁!!!)。
  a.coding准备
  JDK、Eclipse、Windows、Linux。
  为什么是两个系统平台(Windows、Linux)?为更切合实际网络应用,所以使用两个异构的操作系统。条件允许可以使用两个物理机,但我的条件只允许我安装VMware虚拟机进行测试。但无论如何两台服务器必须物理上网络是连通的,iptables对端口的限制有必要配置放开一些端口的访问。好了,基础设施具备,您现在应该如我这般编写代码:
Socket_code1:

Socket_code_2:


code_1是Server端简单得不能再简单的代码了,代码10行创建ServerSocket实例,并在构造方法上传入Server端的端口号,打印System的user.dir是我想看JVM在运行java命令时JVM的工作目录,打印hashcode是想验证是不是每次连接都创建新的ServerSocket,将code_1代码上传到linux服务器,我运行的命令格式是:java -cp .:/opt com.yogreen.socket.SocketServerBoot,在开发环境使用Eclipse运行code_2代码,运行结果如下图:


可看见每次连接ServerSocket的hashcode都是同一个。而Socket的hashcode却在不断变化。
好的,入门级的Java Socket脑补也就这样了。接下来的系列是对象流的传输,远程方法调用、心跳广播,缓存服务发布和简单并行计算开发。
b.总结
Java Socket 使用一对ServerSocket/Socket API实现两个或两个以上的JVM进程间的通信,由于Java的跨平台的特性,无论进程是在同一物理机或网络中的不同节点的进程,甚至异构系统的平台,开发者都不必关心,只要创建了ServerSocket(需要指定服务端口),Socket可通过ip/端口参数创建与Server的连接,从而达到两个JVM的通信,继而实现两个物理机的通信,从1到2,2到3,3到无穷,网络计算服务由此而来。




  • 大小: 102 KB
  • 大小: 58 KB
  • 大小: 31.7 KB
分享到:
评论

相关推荐

    socket——java

    Java中的Socket编程是网络通信的基础,它允许两个网络应用程序通过TCP/IP协议进行数据交换。在Java中,Socket类和ServerSocket类是实现客户端-服务器通信的核心。本篇将深入探讨这两个类以及它们在创建、连接、发送...

    JAVA面试题集(基础篇,高级篇 编程篇)

    以下是对给定的三个部分——"JAVA面试题集基础篇"、"JAVA面试题集高级篇"、"JAVA面试题集编程篇"的详细解析。 **JAVA面试题集基础篇** 基础篇主要关注Java语法和核心概念。这部分可能会包含以下几个方面的知识点:...

    java网络程序——QQ聊天程序

    本篇文章将详细探讨Java网络编程和QQ聊天程序的相关知识点,旨在帮助你掌握JAVA WEB编程的核心技能。 1. **Java网络编程基础** - Java提供了丰富的API来处理网络通信,如Socket、ServerSocket、HttpURLConnection...

    Java语言编程-网络编程

    ### Java语言编程—网络编程 ...- [Socket编程指南](https://www.tutorialspoint.com/java_network_programming/index.htm) 以上就是关于Java语言编程在网络编程领域的相关内容介绍。希望对大家有所帮助!

    java私塾跟我学系列-java篇

    8. **网络编程**:Java提供Socket编程接口,可以创建基于TCP/IP的客户端和服务端应用程序。 9. **反射**:Java反射机制允许在运行时动态获取类的信息并操作类的对象,是Java的重要特性之一。 10. **泛型**:泛型是...

    java网络编程

    首先,我们来了解Java网络编程的基础——TCP/IP协议。TCP(传输控制协议)和IP(互联网协议)是互联网通信的基石。TCP提供面向连接的服务,确保数据的可靠传输,而IP则负责数据的路由和寻址。Java通过Socket类提供了...

    java实验报告——网络中国象棋对战大学本科毕业论文.doc

    8. **技术栈**:报告中提到了Java Swing库,用于创建图形用户界面(GUI),如JFrame、JLabel、JTextField、JButton、JList等组件,以及Socket编程,用于实现客户端与服务器之间的网络通信。 这个项目涉及到网络编程...

    Java语言入门知识——为初学者提供入门基础

    本篇将深入浅出地为Java初学者讲解其入门知识,帮助你快速掌握这门强大的编程工具。 一、Java简介 Java是由Sun Microsystems公司(现已被Oracle收购)于1995年推出的,由詹姆斯·高斯林(James Gosling)等人设计。...

    java和c#网络编程

    本篇主要探讨的是两种主流的编程语言——Java和C#在网络编程方面的应用和技术。 首先,Java网络编程以其跨平台的特性,广泛应用于服务器端开发。Java提供了丰富的API,如Socket、ServerSocket、HttpURLConnection等...

    Java学习材料(499篇文章)——Java学习材料(499篇文章)

    7. **网络编程**: Java的Socket和ServerSocket类用于实现客户端-服务器通信,是网络编程的重要部分。 8. **JDBC**: Java Database Connectivity允许Java程序与各种数据库交互,是开发数据库应用的基础。 9. **反射...

    java精典编程100例 18

    ### Java经典编程100例之UDP篇 #### 一、引言 在《Java经典编程100例》系列中,每一章节都精选了Java编程中的经典案例,旨在通过实际编程实例帮助读者掌握Java的核心技术和应用技巧。本篇文章聚焦于第18例——UDP...

    TestSocket-源码.rar

    《深入解析Java Socket编程——基于TestSocket源码分析》 在Java编程中,Socket通信是网络编程的基础,它提供了一种在不同计算机间交换数据的机制。本篇文章将基于名为"TestSocket-源码.rar"的压缩包文件,深入探讨...

    Java实用编程技术集锦

    1. **基础篇** - **变量与数据类型**:Java提供了多种数据类型,包括基本类型和引用类型。理解它们的用法和存储机制是编程的基础。 - **流程控制**:掌握if语句、switch语句、for循环、while循环等,以及break和...

    java技能百练--网络篇

    Java技能百练——网络篇是针对Java开发者在网络编程方面的深入学习和实践。在这个主题中,我们将探讨Java在处理网络通信、数据传输以及网络服务开发等多个关键领域的应用。下面,我们将详细解析Java网络编程的一些...

    面向对象程序设计——javaPPT课件(第二版)

    9. **网络编程**:Java的Socket编程是构建网络应用程序的重要部分,可能涉及TCP和UDP通信、服务器端和客户端编程。 10. **Java API和标准库**:介绍Java标准库中的各种类和方法,如IO流、集合框架、日期时间API等,...

    Java语言基础教程-Java NIO流篇2

    第6节将聚焦于Java NIO中的Socket通道操作,这是网络编程中的重要一环。SocketChannel是基于TCP协议的,提供了一种可靠的数据传输方式。我们将学习如何创建和配置SocketChannel,以及如何通过它进行数据的读写。此外...

    java 核心(上下册)

    第一部分:《Java核心——基础篇》(Core Java 2 Volume I - Fundamentals Seventh Edition) 该书的基础篇主要覆盖了以下几个关键知识点: 1. **Java编程基础**:包括Java开发环境的搭建,基本语法,数据类型,...

    由浅入深学Java — 基础、进阶与必做260题 高清 PDF

    ### Java基础篇 #### 1. Java语言概述 Java是一种广泛使用的高级编程语言,以其平台无关性、面向对象、安全性等特性而闻名。了解Java的历史背景、设计哲学以及其在现代软件开发中的地位对于初学者至关重要。 #### ...

    Java JDK 6学习笔记——ppt简体版

    JDK 6提供了Socket编程接口,用于建立客户端-服务器通信。此外,URL和URLConnection类提供了访问网络资源的能力。 七、多线程 Java的多线程模型在JDK 6中得到进一步完善,线程的创建、同步和通信有了更多的控制选项...

    JAVA程序设计与问题解决(电子书)

    《JAVA程序设计与问题解决》是一本全面介绍Java编程语言的教材,分为基础篇和高级篇,由美国知名计算机科学家Walter Savitch撰写,并有中文翻译版本。这本书旨在帮助读者从零开始学习Java编程,逐步掌握解决问题的...

Global site tag (gtag.js) - Google Analytics