《Java核心技术II》用Java连接到服务器
用Java连接到服务器
用程序访问,通telnet工具相同。
Socket,英文意思(原意是插座):计算机中翻译为
套接字。
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是
应用程序与网络协议栈进行交互的接口
[1]
。
连接到端口并打印出它找到的信息
package 第4章网络.socket;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class SocketTest {
public static void main(String[] args) throws UnknownHostException, IOException {
try(var s = new Socket("time-a.nist.gov",13);
var in = new Scanner(s.getInputStream(),StandardCharsets.UTF_8)){
while (in.hasNextLine()) {
String line = in.nextLine();
System.out.println(line);
}
}
}
}
Socket简单易用,Java库隐藏了建立网络连接和通过网络连接发送数据的复杂过程。
和IO流很像,一个从文件,一个从网络中读写数据。
API java.net.Socket
- Socket(String host, int port),构建一个套接字,用来连接给定的主机和端口。
- InputStream getInputStream()
- OutputStream getOutputStream(),获取从套接字中读取的数据的流,也可以写入。