`
long_yu2
  • 浏览: 334509 次
社区版块
存档分类
最新评论

java网络编程【2】 基于Socket的java网络编程(含实例)

 
阅读更多
1,什么是Socket

网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。

但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。


2,Socket通讯的过程


Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。


对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:

  (1) 创建Socket;

  (2) 打开连接到Socket的输入/出流;

  (3) 按照一定的协议对Socket进行读/写操作;

  (4) 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。)


3,创建Socket


创建Socket


java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:


  Socket(InetAddress address, int port);


  Socket(InetAddress address, int port, boolean stream);


  Socket(String host, int prot);


  Socket(String host, int prot, boolean stream);


  Socket(SocketImpl impl)


  Socket(String host, int port, InetAddress localAddr, int localPort)


  Socket(InetAddress address, int port, InetAddress localAddr, int localPort)


  ServerSocket(int port);


  ServerSocket(int port, int backlog);


  ServerSocket(int port, int backlog, InetAddress bindAddr)


  其中address、host和port分别是双向连接中另一方的IP地址、主机名和端 口号,stream指明socket是流socket还是数据报socket,localPort表示本地主机的端口号,localAddr和 bindAddr是本地机器的地址(ServerSocket的主机地址),impl是socket的父类,既可以用来创建serverSocket又可 以用来创建Socket。count则表示服务端所能支持的最大连接数。例如:学习视频网 http://www.xxspw.com


  Socket client = new Socket("127.0.01.", 80);


  ServerSocket server = new ServerSocket(80);


  注意,在选择端口时,必须小心。每一个端口提供一种特定的服务,只有给出正确的端口,才 能获得相应的服务。0~1023的端口号为系统所保留,例如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口号为23, 所以我们在选择端口号时,最好选择一个大于1023的数以防止发生冲突。



  在创建socket时如果发生错误,将产生IOException,在程序中必须对之作出处理。所以在创建Socket或ServerSocket是必须捕获或抛出例外。


几个简单的例子:

【1】

(1)客户端:


(2)服务器端:


首先 运行 服务器端,在运行客户端:结果:hello/127.0.0.1port#1869bye-bye


【2】

(1)服务器端


(2)客户端:




分享到:
评论

相关推荐

    Java网络编程/Java网络编程实例

    Java网络编程是Java开发中的重要领域,它涵盖了网络应用...提供的《Java网络编程实例》将可能包含这些概念的具体代码示例,帮助读者更好地理解和掌握相关技术。阅读和分析这些实例,是提升Java网络编程技能的有效途径。

    Java Socket网络编程.pdf

    Java Socket网络编程是Java平台中的核心特性,它为开发者提供了在TCP/IP协议下创建网络应用的能力。Socket编程主要用于实现客户端和服务器之间的通信,基于客户机/服务器模型。在这个模型中,服务器端通常处于被动...

    《Java网络编程实例:Java网络编程实例》

    本书《Java网络编程实例:Java网络编程实例》显然聚焦于通过实际案例来教授这一核心技能。以下是一些主要的知识点,这些知识点通常会在书中详细讨论: 1. **TCP/IP协议基础**:首先,了解TCP/IP模型和协议栈是非常...

    java网络编程实例2

    这个"java网络编程实例2"很可能包含了深入的实践案例,帮助读者理解并掌握网络编程的基本概念和技术。以下是根据标题和描述可能涵盖的一些关键知识点: 1. **网络基础知识**:在Java中进行网络编程首先需要了解TCP/...

    基于Socket的java网络编程

    Java网络编程的核心是基于Socket进行通信,Socket是TCP/IP协议栈的一种实现,它允许两个网络节点(通常是客户端和服务器)通过TCP或UDP进行数据交换。Socket接口为应用程序提供了低级别的网络通信控制,允许开发者...

    java网络编程实例.rar

    这个"java网络编程实例.rar"的压缩包显然包含了帮助开发者理解和实践Java网络编程的资源。让我们详细探讨一下Java网络编程的核心概念和相关知识点。 首先,Java网络编程主要基于Java的Socket编程模型,它允许程序...

    Java 网络编程实例

    通过这个实例,我们可以深入理解Java的Socket编程、多线程以及网络通信的基本原理。 1. **Java Socket编程**: Java Socket是Java提供的用于实现网络上不同主机间的进程通信的API。在本例中,服务器端创建一个...

    用Java实现基于Socket的网络编程

    在这个项目中,我们讨论的是如何用Java实现基于Socket的网络编程,具体是一个简单的聊天室应用。Socket编程是网络通信的基础,它允许两个或多个设备通过TCP(传输控制协议)进行数据交换。TCP是一个面向连接的、可靠...

    基于socket java 语言网络通讯机制和程序设计

    本文旨在探讨Java语言在网络通讯中的应用及其基于Socket的编程机制。随着互联网技术的飞速发展,网络编程已经成为软件开发中不可或缺的一部分。Java作为一种跨平台的语言,凭借其丰富的API和强大的网络功能,在网络...

    java socket 编程,Java socket 编程实例

    #### 三、Java中的Socket编程实例 接下来,我们通过一个简单的Java Socket编程示例来深入了解如何在Java中实现Socket编程。该示例展示了一个简单的Web客户端程序,用于获取一个HTML页面的内容。 ```java import ...

    Java网络编程实例(随书源代码)

    《Java网络编程实例》这本书的源代码提供了丰富的示例,帮助读者深入理解这一领域。本压缩包包含的源代码覆盖了Java网络编程的各种核心概念和技术,旨在帮助开发者实践并提升网络编程技能。 1. **基础概念**: - *...

    java网络编程实例

    在这个实例中,我们将深入探讨Java网络编程的基础及其在实际应用中的实践。本文将覆盖以下几个关键知识点: 1. **Java网络编程基础** - Java提供了丰富的类库支持网络编程,如`java.net`包下的Socket、...

    Java网络编程(18个Socket C/S实例)

    `Java网络编程.ppt`是一个演示文稿,可能会详细解释网络编程的基本概念,包括IP地址、端口号、套接字(Socket)的工作原理,以及如何使用Java的`java.net`包来实现这些功能。 在"多客户服务器相互通信"的子目录下,...

    java socket编程实例(出自《java大学教程》)

    学习这些Java Socket编程实例,有助于理解TCP/IP通信的基本原理,为构建实际的网络应用程序打下坚实的基础。你可以通过调试和修改`SocketTest`代码,进一步探索和实践Socket编程的不同场景,如文件传输、聊天应用等...

    Java网络编程(socket---网上广播).rar_Java 网络_Socket网络编程_java socket _ja

    Java网络编程是开发分布式应用程序的关键技术之一,Socket网络编程在其中扮演着至关重要的角色。本教程将深入探讨Java中的Socket编程,特别是如何实现网上广播功能。网上广播允许一个设备向网络上的所有设备发送数据...

    JAVA Socket 网络编程教程

    Java Socket网络编程是Java开发中一个重要的组成部分,它允许应用程序通过网络进行通信,实现客户端与服务器之间的数据交换。本教程将深入探讨Java Socket编程的基本概念、原理和实践应用。 一、Socket基本概念 ...

    java网络编程

    Java网络编程是Java开发中的重要领域,它涵盖了网络通信的所有基本概念和技术...通过阅读《Java网络编程》第三版,开发者可以系统地学习这些知识点,并通过实例加深理解,为构建高效、安全的网络应用程序打下坚实基础。

    java网络编程实例4

    在这个“Java网络编程实例4”中,我们将深入探讨这些关键知识点。 1. **Java网络编程基础**:Java提供了丰富的API来支持网络编程,如`java.net`包下的Socket、ServerSocket、URL等类。Socket用于创建客户端和服务器...

    java网络编程实例源代码

    通过分析这些实例源代码,你可以学习到如何在Java中实现网络通信,包括TCP和UDP协议的使用,以及Socket编程的基础知识。同时,这些示例也将帮助你理解和处理网络编程中可能遇到的实际问题,如连接管理、数据编码解码...

Global site tag (gtag.js) - Google Analytics