- 浏览: 890278 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
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
http://avery-leo.iteye.com/blog/277639
发表评论
-
操作系统的目标和作用
2012-07-05 23:46 1326操作系统的目标 目前存在着多种类型的OS,不同类型的OS ... -
利用(ffmpeg)生成视频缩略图(java)
2012-07-01 01:11 0对于上传视频生成缩略图使用的是ffmpeg进行生成的。 自己在 ... -
对Java多线程技术中所有方法的详细解析
2012-06-06 11:32 783一、run()和start() 这两个 ... -
java乱码
2012-06-06 11:33 967自从接触Java和JSP以来, ... -
学习apache commons-io类库中的文件清除器
2011-07-06 23:26 1439学习apache commons-io 1.4类库中的File ... -
java 正则表达式 过滤html标签
2011-05-24 15:10 5352前段时间开发的时候要读取一篇文章的简介内容(也就是前200个字 ... -
转---Eclipse中web-inf和meta-inf文件夹的信息
2011-05-24 13:08 1131Eclipse中web-inf和meta-inf ... -
logback与Log4J的区别
2011-05-17 23:34 1432Logback和log4j是非常相似 ... -
性能优化
2011-04-14 16:10 1172(1)jdbc性能优化 jdbc程序的性能主要由两个因素决定 ... -
JAVA的Random类(转)
2011-04-12 00:21 907Random类中实现的随机算法是伪随机,也就是有规则的随机。在 ... -
创建临时文件
2011-04-10 21:55 1090package net.java2000.io; ... -
面向对象设计的基本原则
2011-04-07 10:28 1142摘自:http://soft6.com/tech/6/6501 ... -
proxool
2011-04-02 15:01 855属性列表说明: fatal-sql- ... -
当前Java软件开发中几种认识误区
2011-04-01 10:12 876越来越多人开始使用Java ... -
Java中查看一个方法被调用的层次(Reflection、StackTrace)
2011-04-01 00:53 2031package test; public class Mai ... -
反序列化时恢复transient字段
2011-03-30 13:20 1211我们知道将字段设置为transient,可以避免该自动被序列化 ... -
用socket连接服务器直接发送接收邮件
2011-03-22 17:22 1301首页 新闻 论坛 问答 博客 招聘 更多 ▼ 专栏 &l ... -
利用JavaMail收/发Gmail邮件(SSL)
2011-03-22 17:21 2385Gmail目前已经启用了POP3和SMTP服务,具体情况请看 ... -
Java 反射与内省
2011-03-14 22:08 1072一、java反射机制 JAVA反 ... -
关于jdk的注解@SuppressWarnings详解
2011-03-01 15:23 1493@SuppressWarnings J2SE 提供的一个批注或 ...
相关推荐
本文将深入探讨如何使用MFC实现非阻塞Socket通信,并结合protobuf(Protocol Buffers)作为数据交换格式,构建一个允许多个客户端与单一服务器进行通信的系统。 首先,我们来理解“非阻塞Socket”。在传统的阻塞...
在这个"socket多线程例程非阻塞模式"的示例中,我们将深入探讨如何在Windows平台上实现多线程的socket通信,并了解非阻塞模式的工作原理。 首先,让我们来理解Socket的基本概念。Socket是进程间通信(IPC)的一种...
### Socket C++ TCP阻塞与非阻塞服务器客户端开发 #### 概述 本文档将详细介绍如何使用C++ Winsock库来开发TCP非阻塞服务器。通过本篇内容的学习,您将了解到设置socket函数为非阻塞模式的方法,并且能够深入了解...
4. 设置非阻塞模式:在Windows下,可以通过`ioctlsocket()`函数配合`FIONBIO`标志来设置`socket`为非阻塞模式。 5. 异步事件处理:`WSAAsyncSelect()`或`WSAEventSelect()`函数的使用,以及如何根据接收到的事件进行...
在Windows环境下,如使用VC6(Visual C++ 6.0)进行开发,我们可以使用Winsock库来实现非阻塞Socket的超时设置。首先,我们需要包含必要的头文件`winsock2.h`和`ws2tcpip.h`,并链接`ws2_32.lib`库。然后,通过调用`...
《ChatRoom(Winsock).rar:Winsock非阻塞编程详解》 在计算机网络编程领域,Winsock(Windows Socket)是Microsoft Windows操作系统中实现TCP/IP协议族的接口,它为应用程序提供了一种标准的方式来发送和接收网络...
本文将详细解析“最简单的Socket链接”这一主题,包括客户端和服务端的实现以及交互过程。 首先,我们要理解Socket的基本概念。Socket是网络通信中的一个抽象接口,可以看作是两台计算机之间的通信通道。它允许应用...
使用`#include <winsock2.h>`和`#pragma comment(lib, "ws2_32.lib")`来引入所需的头文件和链接库。 2. **初始化和终止**: 在使用Winsock之前,需要调用`WSAStartup`函数初始化Winsock环境,而在程序结束时,调用`...
相反,非阻塞Socket在调用时不等待,无论结果如何都会立即返回。 【TCP通信流程】 TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,其通信过程包括以下几个步骤: 1. **服务器端**: ...
异步非阻塞C语言爬虫是一种高效的数据抓取技术,尤其适用于大数据量的网络抓取任务。在本文中,我们将深入探讨这个话题,并详细解释其中涉及的关键技术和概念。 首先,我们来了解一下“异步非阻塞”模式。在传统的...
- **阻塞/非阻塞 (Block/Unblock)**:阻塞式套接字在执行网络调用时会一直等待直至操作完成(例如recv()函数在没有数据时会持续等待直至有数据到达);而非阻塞式套接字无论是否完成都会立即返回结果。 - **常见模式...
在Socket编程中,理解数据包Socket、阻塞的概念以及如何使用select()进行多路同步I/O对于处理多路连接和非阻塞Socket通信也是重要的。select()函数允许程序监控多个Socket,等待它们中的任意一个、多个或者全部变得...
1. **MINA架构**:MINA基于NIO(非阻塞I/O),利用Selector进行多路复用,可以在单个线程中处理多个连接,提高系统效率。 2. **长连接**:与传统的Socket短连接不同,长连接保持在客户端和服务器之间长时间打开,...
- 非阻塞Socket、多路复用I/O(如select、poll或epoll)以及异步Socket(如WSAAsyncSelect或WSAEventSelect)可提升并发性能。 通过理解以上知识点,开发者可以实现Win CE和Windows XP之间的高效、安全的Socket...
- **心跳包**:发送特定的无业务数据包,用于检查网络连接是否正常,防止TCP的“TIME_WAIT”和“FIN_WAIT_2”状态导致的连接阻塞。 - **异常处理**:及时捕获并处理SocketException或其他网络异常,确保连接的健壮性...
9. **性能优化**:对于大量数据传输,可以考虑使用缓冲区优化读写效率,或者使用NIO(非阻塞I/O)提高并发性能。 通过以上步骤和注意事项,我们可以创建出能在Android设备上运行的基于WiFi的Socket客户端和服务器端...
在实际应用中,`InetAddress`和`Socket`经常与其他类结合使用,如`BufferedReader`和`PrintWriter`进行数据读写,或者`SocketChannel`和`Selector`进行非阻塞I/O。这些组合可以帮助我们构建高效、可扩展的网络服务。...
// 获取当前空闲的socket链接 private static Mutex m_mutex = new Mutex(); public static XieGouSocket GetFreeConnection() { m_mutex.WaitOne(); // 先阻塞 for (int i = 0; i < m_socket.Length; i++) { if...
2. **高性能通信**:HPSocket4C基于异步非阻塞I/O模型,通过事件驱动机制,可以处理大量并发连接,实现高吞吐量的网络通信。 3. **协议兼容性**:支持TCP/IP、UDP/Broadcast等多种网络协议,同时还能自定义协议解析...
非阻塞模式下,I/O模型有多种,如Select、WSAAsyncSelect、WSAEventSelect以及IO重叠模型和完成端口模型。其中,完成端口模型被认为是处理高并发的最佳选择。 作者建议,初学者可以从简单的WSAAsyncSelect模型开始...