import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.SocketChannel;
/**
* 非阻塞的Socket链接。<br>
* 可以在链接建立期间做一些别的操作。
*
* @author 赵学庆,Java世纪网(java2000.net)
*
*/
public class SocketNonBlock {
/**
* 创建一个非阻塞的Socket通道。
*
* @param hostName
* 主机
* @param port
* 端口
* @return Socket端口
* @throws IOException
*/
public static SocketChannel createSocketChannel(String hostName, int port)
throws IOException {
SocketChannel sChannel = SocketChannel.open();
sChannel.configureBlocking(false);
sChannel.connect(new InetSocketAddress(hostName, port));
return sChannel;
}
public static void main(String[] args) {
try {
// 创建链接
SocketChannel sChannel = createSocketChannel("www.java2000.net", 80);
// 可以通过判断是否连接,在链接成功建立前做一些其它的事情
while (!sChannel.finishConnect()) {
System.out.println("waiting....");
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(sChannel.isConnected());
} catch (IOException e) {
e.printStackTrace();
}
}
}
运行结果
waiting....
waiting....
true
分享到:
相关推荐
NULL 博文链接:https://daojin.iteye.com/blog/720402
最简单的Socket链接,客户端与服务端在同个工程内,也可以分成两个工程,先运行Service类,再运行Client查看控制台打印情况
NIO(服务端和客户端代码) 博文链接:https://songjianyong.iteye.com/blog/1757406
NULL 博文链接:https://1358440610-qq-com.iteye.com/blog/2114632
网络编程,当然要用到Windows Socket(套接字)技术。Socket相关的操作由一系列...因此,建议初学者学习编网络通信程序时,暂且不要用MFC提供的类,而先用Winsock2 API,这样有助于对异步、非阻塞Socket编程机制的理解。
下面来介绍判断非阻塞SOCKET是否已经断开的几种方法: 注意要区分不同操作系统分别进行测试, 包括WINDOWS, LINUX和UNIX会各有不同。 在WINDOWS下比较简单,可以使用FD_CLOSE事件判断SOCKET是否已经断开 view ...
基于mfc的五子棋网络对战实例,采用非阻塞的socket,下载后需要在设置里面更改为静态链接库,并更换执行目录
5.3.1 怎样使socket成为非阻塞的 5.3.2 成功与失败不是绝对的 5.3.3 探询而非阻塞 5.3.4 显式地避让 5.3.5 代码示例 5.4 异步模式 5.4.1 认识异步函数 5.4.2 撤销异步操作 5.4.3 代码示例 5.4.4 AU_Time应用 5.5 ...
5.3.1 怎样使socket成为非阻塞的 5.3.2 成功与失败不是绝对的 5.3.3 探询而非阻塞 5.3.4 显式地避让 5.3.5 代码示例 5.4 异步模式 5.4.1 认识异步函数 5.4.2 撤销异步操作 5.4.3 代码示例 5.4.4 AU_Time应用 5.5 ...
基于TCP/IP UDP Socket通讯的函数库,包括客户端及服务端的链接控制,多线程机制,通讯包的格式可以由用户自由设定。非阻塞式和阻塞式收发数据。接受发送数据保存在一定的队列中,起到缓存机制。
Node.js非阻塞事件循环支持许多并发请求 Socket.io使全双工通信变得容易 先决条件 安装依赖项 在此处以管理员身份打开PowerShell并运行: npm install 启动你的服务器 在此处以管理员身份打开PowerShell,并使用...
它不允许在连接建立和关闭的时候进行非阻塞操作。 UDT缓冲区的大小理论上越大越好,要运行的好两端buffer至少为【带宽*RTT】 UDT使用UDP数据通道,所以UDP缓冲大小影响程序运行,但随着buffer变大效果也会越来越不...
在 C/S 网络编程中,数据的发送和接收通过Socket 套接口完成,套接字分为阻塞式和非阻塞式[1]。 通过对Java Net框架下GUI技术、通信协议等关键技术的分析,本通信器决定采用如下技术方案: (1) Swing技术开发GUI...
这样使得服务器能够并发处理大量的链接,非阻塞式的设计使得它消耗的资源更少。外围设备或者服务器和核心服务器的链接是否出错都不会影响到核心服务器的运行。确保服务器的足够健壮,稳固。只有核心服务器和Web后台...
目 录 第1篇 Linux网络开发基础 ...9.6.1 非阻塞方式程序设计介绍 264 9.6.2 非阻塞程序设计的例子 264 9.7 小结 266 第10章 基于UDP协议的接收和发送 267 10.1 UDP编程框架 267 10.1.1 UDP编程框图 267
nio:JDK1.4 开始支持,同步阻塞或同步非阻塞 IO。 指定使用 NIO 模型来接受 HTTP 请求 protocol=”org.apache.coyote.http11.Http11NioProtocol” 指定使用 NIO 模型 来接受 HTTP 请求。默认是 BlockingIO,配置为 ...