一、概念
Socket(套接字),位于运输层( TCP、UDP )和应用层之间,是抽象层的一组接口。应用程序可以通过Socket进行接受和发送数据。Socket符合模式:open -> write/read -> close。
Socket就像是管理TCP/UDP协议族和数据的管理员,应用客户只需和Socket“打交道”,而不必去关心底层的协议。
二、Java Socket Programming
Java Socket Programming用于不同的应用之间进行通信,它有两种形式:
1、connection-oriented socket programming:比如Socket和ServerSocket
2、connection-less socket programming:比如DatagramSocket and DatagramPacket classes
客户Client和服务器Server进行通信如下图所示:
三、Socket类和ServerSocket类
1、Socket用于Client和Server之间的通信;Socket类用于创建一个Socket。Socket类需要传递主机名hostname(或IP地址),和端口号。如下,创建一个Socket类的对象
Socket s = new Socket("localhost", 6666);
在这里,hostname是localhost。当Client和Server在同一个系统的时候,我们用localhost作为hostname。
2、ServerSocket用于创建一个Server:
ServerSocket ss = new ServerSocket(6666);
Socket s = ss.accept();//建立连接并等待Client