Java Socket编程总结

一、网络API

InetAddress      用于标识网络上的硬件资源,主要是IP地址

URL          统一资源定位符,通过URL可以直接读取或写入网络上的数据

Sockets      使用TCP协议实现的网络通信Socket相关的类

Datagram     使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。

二、地址

A、InetAddress           ip地址

(1)静态方法

  • getLocalHost()   InetAddress
  • getByName(String host)       InetAddress
  • getAllByName(String host)   InetAddress[]
  • getByAddress(byte[] addr)   InetAddress
  • getByAddress(String host, byte[] addr)    InetAddress

(2)成员方法

  • getAddress()    byte[]
  • getCanonicalHostName()  String
  • getHostAddress()   String
  • getHostName()  String
  • isAnyLocalAddress()  boolean
  • isMulticastAddress()   boolean
  • isReachable(int timeout)   boolean

B、InetSocketAddress         socket地址

(1)构造方法

  • InetSocketAddress(InetAddress addr, int port)     根据 IP 地址和端口号创建套接字地址。
  • InetSocketAddress(int port)              创建套接字地址,其中 IP 地址为通配符地址,端口号为指定值。
  • InetSocketAddress(String hostname, int port)      根据主机名和端口号创建套接字地址。

(2)成员方法

getAddress()  InetAddress       获取 InetAddress。
getHostName()   String            获取 hostname。
getPort()  int                            获取端口号。

(4)静态方法

createUnresolved(String host, int port)   InetSocketAddress       根据主机名和端口号创建未解析的套接字地址。

三、Socket

(1)构造方法

  • Socket()                                                                       通过系统默认类型的 SocketImpl 创建未连接套接字
  • Socket(InetAddress address, int port)                                                            创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
  • Socket(InetAddress address, int port, InetAddress localAddr, int localPort)        创建一个套接字并将其连接到指定远程地址上的指定远程端口。
  • Socket(Proxy proxy)                                                                                            创建一个未连接的套接字并指定代理类型(如果有),该代理不管其他设置如何都应被使用。
  • Socket(String host, int port)                                                                                 创建一个流套接字并将其连接到指定主机上的指定端口号。
  • Socket(String host, int port, InetAddress localAddr, int localPort)                        创建一个套接字并将其连接到指定远程主机上的指定远程端口。

(2)成员方法

1)关联地址

  • bind(SocketAddress bindpoint)  void           将套接字绑定到本地地址。
  • connect(SocketAddress endpoint)   void        将此套接字连接到服务器。
  • connect(SocketAddress endpoint, int timeout)    void         将此套接字连接到服务器,并指定一个超时值。
  • isBound()  boolean         返回套接字的绑定状态。
  • isConnected()        boolean    返回套接字的连接状态。

2)获取IP地址

  • getInetAddress()   InetAddress          返回套接字连接的地址。
  • getLocalAddress()   InetAddress        获取套接字绑定的本地地址。
  • getPort()            int    返回此套接字连接到的远程端口。
  • getLocalPort()      int 返回此套接字绑定到的本地端口。
  • getLocalSocketAddress()  SocketAddress 返回此套接字绑定的端点的地址,如果尚未绑定则返回 null。
  • getRemoteSocketAddress()   SocketAddress 返回此套接字连接的端点的地址,如果未连接则返回 null。

3)获取数据

  • getInputStream()   InputStream           返回此套接字的输入流。
  • getOutputStream()   OutputStream     返回此套接字的输出流。
  • getChannel()   SocketChannel            返回与此数据报套接字关联的唯一 SocketChannel 对象(如果有)。

4)设置缓冲区

  • setReceiveBufferSize(int size) void            将此 Socket 的 SO_RCVBUF 选项设置为指定的值。
  • setSendBufferSize(int size) void         将此 Socket 的 SO_SNDBUF 选项设置为指定的值。

5)重用端口

  • setReuseAddress(boolean on) void      启用/禁用 SO_REUSEADDR 套接字选项。
  • getReuseAddress()   boolean               测试是否启用 SO_REUSEADDR。

6)关闭

  • close()  void                    关闭此套接字。
  • isClosed()  boolean       返回套接字的关闭状态。

四、ServerSocket

(1)构造方法

时间: 2024-10-17 21:19:03

Java Socket编程总结的相关文章

Java Socket编程

对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信.这样就有两个Socket了,客户端和服务端各一个. 客户端写服务端读 服务端代码 public class Server { public s

Java Socket编程readLine返回null,read返回-1的条件

客户端正常关闭socket的时候,服务器端的readLine()方法会返回null,或者read()方法会返回-1 Java Socket编程readLine返回null,read返回-1的条件,布布扣,bubuko.com

【转】Java Socket编程

原文地址:Java Socket编程 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信.这样就有两个Socket了,客户端和服务端各一个. 对于Socket之间的通

【Java】Java Socket编程(1)基本的术语和概念

计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础.那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因.Java语言从一开始就是为了互联网而设计的,它为实现程序的相互通信提供了许多有用API,这类应用编程接口被称为套接字(Socket).在开始学习Java Socket之前我们需要先来了解一下基本的术语和概念. 1.计算机网络 计算机网络由一组通过通信信道(Communication channel)相互连接的机器组成.这些机器被称为:主机(host

Java Socket编程详细解说

Java Socket编程 JavaSocketServerSocket乱码超时 Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信.这样就有两个Socket了,客户

如何为可扩展系统进行Java Socket编程

从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket和Windows WinSock代码.我的任务是确保视频游戏客户端和一个游戏服务器通信.很幸运有这样的机会写一些Java Socket代码,我对Java流式网络编程和简洁明了的API着迷.这一点都不让人惊讶,Java最初就是设计促进智能设备之间的通信,这一点很好的转移到了桌面应用和服务器应用. 19

Java Socket编程基础篇

原文地址:Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术.下面就让我们一起揭开Socket的神秘面纱. Socket编程 网络基础知识点: 两台计算机间进行通讯需要以下三个条件 IP地址.协议.端口号: IP地址:定位应用所在机器的网络位置.(比如家庭住址:北京市朝阳区XX街道XX小区) 端口号

20182332 实验四《Java Socket编程 》实验报告

20182332 实验肆<数据结构与面向对象程序设计>实验报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 盛国榕 学号:20182332 实验教师:王志强 实验日期:2019年9月30日 必修/选修: 必修 1.实验内容 (一)Java Socket编程 1.学习蓝墨云上教材<Java和Android编程>"第16章 输入/输出 "和"第22章 网络",学习JavaSocket编程 2.结对编程.结对伙伴A编写客户端

(转)Java Socket编程

原文出自:http://www.cnblogs.com/rocomp/p/4790340.html Socket是网络驱动层提供给应用程序编程接口和一种机制.可以把Socket比喻成一个港口码头,应用程序只要把货物放到港口码头上,就算完成了货物的运送.对于接收方应用程序也要创建一个港口码头,只需等待货物到达码头后将货物取走. InetAddress          InetAddress类用于标识网络上的硬件资源,标识互联网协议(IP)地址.           该类没有构造方法       

Java Socket 编程

1. 背景 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节.你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节. java.net 包中提供了两种常见的网络协议的支持: TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信.通常用于互联网协议,被称 TCP / IP. UDP:UDP 是用户数据报协议的缩写,一个无连接的协议.提供了应用程序之间要