BBS水木清华站∶精华区

发信人: lenlon (九天), 信区: Java 
 
1. 在有数据来时有没有办法产生一个事件或有相应的函数? 
2. 用流发送数据,成功时是指对方已收到数据还是指数据保存在本地的系统缓冲中? 
3. 如何实现非阻塞/异步的数据传输? 
 
请大侠们多多指教! 
 
 
 
 
发信人: Yapith (早起的鸟儿有食吃), 信区: Java        
 
【 在 lenlon (九天) 的大作中提到: 】 
1. 在有数据来时有没有办法产生一个事件或有相应的函数? 
2. 用流发送数据,成功时是指对方已收到数据还是指数据保存在本地的系统缓冲中� 
 
以上两条应该这样理解: 发送方的输出流和接收方的输入流的动作是一一对应的。 
        如 发送方写一个整数 outSTream.wirteInt(3);  
        接受方就必须读一个整数 inStream.readInt() ; 
    只有两方同时做,才能成功。任何先做了上述动作的都会阻塞,等到 
     对方的相应动作做的时候才唤醒。上两个函数是同时结束的。 
 
3. 如何实现非阻塞/异步的数据传输? 
   这就不懂了。 
 
 
请大侠们多多指教! 
 
 
 
 
发信人: proger (大飞), 信区: Java        
 
【 在 Yapith (早起的鸟儿有食吃) 的大作中提到: 】 
∶ 1. 在有数据来时有没有办法产生一个事件或有相应的函数? 
∶ 2. 用流发送数据,成功时是指对方已收到数据还是指数据保存在本地的系统缓冲中� 
∶ 以上两条应该这样理解: 发送方的输出流和接收方的输入流的动作是一一对应的。 
∶         如 发送方写一个整数 outSTream.wirteInt(3);  
∶         接受方就必须读一个整数 inStream.readInt() ; 
∶     只有两方同时做,才能成功。任何先做了上述动作的都会阻塞,等到 
∶      对方的相应动作做的时候才唤醒。上两个函数是同时结束的。 
按照我的经验,即使接收方没有准备好,发送方仍然可以继续执行。 
并且这种现象造成数据容易丢失? 
 
 
∶ 3. 如何实现非阻塞/异步的数据传输? 
∶    这就不懂了。 
∶ 请大侠们多多指教! 
 
 
 
 
发信人: Yapith (早起的鸟儿有食吃), 信区: Java        
 
【 在 proger (大飞) 的大作中提到: 】 
∶ 按照我的经验,即使接收方没有准备好,发送方仍然可以继续执行。 
∶ 并且这种现象造成数据容易丢失? 
 
是么?我倒没有注意过。不过我调试网络通讯时一般都极小心, 
一不留神就有一方死掉。 
还有,SOCKET是基于传输层的TCP协议的,应该是可靠服务,象 
你提到的这种情况好象不应该发生。 
 
 
 
发信人: proger (大飞), 信区: Java        
 
发送方不阻塞是肯定的,我为此极端焦头烂额:( 
 
【 在 Yapith (早起的鸟儿有食吃) 的大作中提到: 】 
∶ 是么?我倒没有注意过。不过我调试网络通讯时一般都极小心, 
∶ 一不留神就有一方死掉。 
∶ 还有,SOCKET是基于传输层的TCP协议的,应该是可靠服务,象 
∶ 你提到的这种情况好象不应该发生。 
 
 
 
 
发信人: rover (Eggplant), 信区: Java        
 
        我以前做过的一个实验是,如果接收方无人接收,那么发送程序 
运行一段时间(发送了足够多的数据)后也就死掉了. 
 
【 在 Yapith (早起的鸟儿有食吃) 的大作中提到: 】 
∶ 是么?我倒没有注意过。不过我调试网络通讯时一般都极小心, 
∶ 一不留神就有一方死掉。 
∶ 还有,SOCKET是基于传输层的TCP协议的,应该是可靠服务,象 
∶ 你提到的这种情况好象不应该发生。 
 
 
 
 

BBS水木清华站∶精华区