java的Socket通信

Posted JAVA笔记书

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java的Socket通信相关的知识,希望对你有一定的参考价值。

Socket编程

1.网络基础知识

2.InetAddress

3.URL

4.TCP编程

5.UPD编程

 

两台计算机通过网络进行通信

2.需要拥有共同的语言,否则言语不通。也就是协议

3.每台主机需要拥有相应的端口号,一台主机可以运行多个程序,如何辨别不同程序的通信,使用端口号

 

TCP/IP协议

1.TCP/IP是目前世界上应用最广泛的协议,是以TCPIP为基础的不同层次上多个协议的集合。也称:TCP/IP协议族或TCP/IP协议栈

2.TCPTransmission ControlProtocol 传输控制协议

3.IP:Internet Protocol 互联网协议

4.TCP/IP网络分层

  物理  如网线,网卡

  数据链路

  网络

  传输  TCP/IP协议

  应用  HTTP超文件传输协议(新闻等)/FIP文件传输协议(文件下载,上传和共享)/SMTP简单邮件传输协议(文件的发送)/Telent远程登录服务

 

IP地址

端口

1.端口可以区分电脑运行的多个不同程序发送的信息

2.每个程序拥有唯一的端口号

3.端口号范围为0~65535,其中0~1023为系统所保留

5.常用的端口号http:80  ftp:21 telnet:23

 

 

Java中的网络支持

针对网络通信的不同层次,Java提供的网络功能有四大类:

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

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

4.Datageam:使用UDP协议,将数据保存在数据报中,通过网络进行通信

 

InetAddress

2.详细方法可查API

 

URL

2.URL由两部分组成:协议名称和资源名称,中间用冒号隔开

3.java.net包中,提供了URL类来表示URL

4.使用URL读取网页的内容

 4.1,通过URL对象的openStream()方法可以得到指定的资源的输入流

  4.2通过输入流可以读取,访问网络上的数据

 

 

 

 

Socket通信

1.TCP协议是面向连接,可靠的,有序的,以字节流的方式发送数据

2.基于TCP协议实现网络通信的类

  客户端的Socket

  服务器端的ServerSocket

 

 

Socker通信

TCP协议是面向连接,可靠的,有序的,一字节的方式发送数据基于TCP协议实现网络通信的类

  客户端的Socket

  服务器端的ServerSocket

 

 

Socket通信模型

Server                                                  Client

建立服务端倾听socket           建立连接         创建连接socket向服务器端发送请求

等待并接受连接请求        ——————————

接受请求后创建连接socket

______________________________________________________________________

InputStream         ---------------------------        outputStream

outputStream        -------开始通信-------        InputStrea

 

关闭socret及相关资源    ----结束通信-----        关闭资源

Socket通信实现

1.创建ServerSocketSocket

2.打开连接到Socket的输入/输出流

3.按照协议对Socket进行读/写操作

4.通信结束 关闭输入输出流,关闭Socket

 

 

服务器端

1.创建ServerSocket对象,绑定监听端口

2.通过accept()方法监听客户端请求

3.连接建立后,通过输入流读取客户端发送的请求信息

4.通过输出流向客户端发送响应信息

5.关闭相应资源

 

 

客户端

2.连接建立后,通过输出流向服务器端发送请求信息

3.通过输入流获取服务器响应的信息

4.关闭相关资源

 

 

多线程服务器

应用多线程来实现服务器与多客户端之间的通信,基本步骤

1.服务器端创建ServerSocket,循环调用accept()等待客户端连接

2.客户端创建一个socket并请求和服务器端连接

4.建立连接的两个socket在一个单独的线程上对话

5.服务器端继续等待新的连接

 

 

UDP编程

1.UDP协议(用户数据报协议)是无连接,不可靠,无序的

2.UDP协议以数据报作为数据传输的载体

 

相关操作类

DatagramPacket:表示数据报包

DatagramSocket:进行端到通信的类

 

UDP服务器端实现的步骤

1.创建DatagramSocket,指定端口号

2.创建Datagrampacket

3.接受客户端发送的数据信息

4.读取数据

UDP客户端实现步骤

1.定义发送信息

2.创建DatagramPacket

3.创建DatagramSocket

4.发送数据

 

重点

1.Socket通信原理

2.基于TCPSocket通信

3.多线程的优先级

  服务器需要响应多个客户端的请求,就需要使用多线程

  为设置优先级可能导致运行时速度非常慢,可降低优先级

4.是否关闭输出流和输入流

  对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所有一般不用关闭流,直接关闭socket

5.使用TCP通信传输对象

  使用ObjectOutStreamObjectInputStream

6.socket编程传递文件

  结合io进行完成


以上是关于java的Socket通信的主要内容,如果未能解决你的问题,请参考以下文章

Java Socket通信介绍及可能遇到的问题解决_java - JAVA

Java中Socket网络通信

Java Socket编程基础

Java Socket通信之客户端程序 发送和接收数据

Java socket编程API基础

Java:Socket通信