Socket通讯读取数据时阻塞解决方案
读文件时 read 读到末尾会返回 -1。但 Socket 通讯里从 InputStream 读数据,对端还没关流、暂时又没有数据时,read 会一直阻塞,只有关闭流才会返回 -1。 所以下面这种「读到 -1 才停」的写法,在 Socket 上很容易卡住: while ((len = in.read…
读文件时 read 读到末尾会返回 -1。但 Socket 通讯里从 InputStream 读数据,对端还没关流、暂时又没有数据时,read 会一直阻塞,只有关闭流才会返回 -1。 所以下面这种「读到 -1 才停」的写法,在 Socket 上很容易卡住: while ((len = in.read…
统一资源定位符 URL(Uniform Resource Locator)是 WWW 客户机访问 Internet 时用来标识资源的名字和地址。超文本链路靠 URL 维持,格式是: <METHOD>://<HOSTNAME:PORT>/<PATH>/<FIL…
Java 的优势之一是程序能访问网络资源。语言提供了一系列类来完成这件事,底层通信软件都在 java.net 包中。通信双方必须遵守协议,目前最广泛使用的是 TCP/IP。 一、TCP/IP 协议 TCP(Transport Control Protocol)是传输控制协议,IP(Internet …
在客户机/服务器(C/S)模式里,Server 端要同时接待多台 Client。除了用 IP 标识一台机器,还要用端口号标识后台正在服务的线程。IP 加上端口,就是网络套接字(Socket)。 Java 里服务端用 ServerSocket,客户端用 Socket。端口 0~1023 留给系统(例如…