Socket编程

Socket套接字是网络通信的一个重要机制,是指两台计算机上运行的两个程序之间的双向通信的连接点,这个双向链路上每一端都称为一个Socket。Java采用的Socket通信是一种流式套接字通信,它使用TCP协议,通过面向连接的服务,实现客户机与服务器之间双向且可靠的通信。

通信过程是:客户端程序申请连接,服务端程序监听所有的端口,判断是否有客户程序的服务器请求。当客户端程序请示和某个端口连接时,服务器将对方IP地址和端口号绑定形成套接字,这样服务器与客户机就建立了一个专用的虚拟连接,客户程序可以向套接字写入请求,服务器处理请求并把结果通过套接字返回。通信结束后,将此虚拟连接拆除。


一、Socket通信机制

1、Socket通信的3个基本步骤:

(1)建立Socket连接:通信开始之前由双方确认,建立一条专用虚拟连接通路。

(2)数据通信:利用虚拟连接通道传送数据。

(3)拆除连接:通信结束后,将建立的虚拟连接拆除。

这种通信要在服务器端和客户机分别编程进行,服务器端首先建立一个服务器套接字ServerSocket,并指定端口号监听客户机的请求,还要建立一个客户端套接字Socket用来和客户机通信,然后客户机端建立套接到同一端口的Socket以便和服务器通信。


2、Socket类和ServerSocket类

java.net包中提供了两个类:Socket类和ServerSocket类,分别用于客户端和服务器端的Socket通信,网路通信方法都封装在这两个类中。构造方法包括:

服务器端:

ServerSocket(int port)//在指定的端口上创建服务器Socket对象

ServerSocket(int port,int count)//在指定的端口上创建服务器Socket对象,并指定服务器能够支持的最大连接数

客户端:

Socket(InetAddress ip,int port)//使用指定IP地址和端口建立Socket对象

Socket(String host,int port)//使用指定主机和端口建立Socket对象

Socket(InetAddress ip,int port,boolean stream)//使用指定IP地址和端口建立Socket对象,布尔值stream表示是否采用流式通信方式

Socket(String host,int port,boolean stream)//使用指定主机和端口建立Socket对象,布尔值stream表示是否采用流式通信方式


建立Socket连接后,可以利用Socket类的getInputstreamgetOutputstream方法获得向Socket读写数据的输入输出流。

Socket通信时,服务器可以建立多个线程与同时多个客户程序通信,还可以通过服务器让各个客户机之间互相通信。这点与URL通信不同,URL服务器程序只能与一个客户机进行通信。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值