数据流接收、发送问题!

chaoliu1024 2011-02-20 05:28:13
[code=Jav]/* 服务器端 */
private void processConnection(StreamConnection conn)
{
String inputString = readInputString(conn); // 读取输入
sendOutputData(inputString, conn); // 在发送数据给客户端
conn.close();
}

/* 客户端 */
public void accessService(ServiceRecord sr)
{
StreamConnection conn = (StreamConnection) Connector.open(url);
DataOutputStream dos = conn.openDataOutputStream(); // 发送数据流
dos.writeUTF("Hello"); // 写数据
dos.close(); // 关闭
/* 这里的问题 */
DataInputStream dis = conn.openDataInputStream(); // 接收数据流,对应sendOutputData()
// 想请教如果服务器已经接收到数据并发送,
// 但在发送过程中因为某种原因数据流丢失,客户端conn.openDataInputStream()失败
// 如何得到失败标志呢?
String echo = dis.readUTF(); // 读数据
dis.close(); // 关闭
}[/code]
...全文
157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamefx 2011-02-21
  • 打赏
  • 举报
回复
在不抛异常的情况下:
1.判断conn.openDIS()返回值是否为null
2.dis流读取是否处于阻塞状态
3.dis已读取到流结尾返回为-1

huyong479072052 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhzxlc_06 的回复:]
如何设置超时?
[/Quote]
三楼考虑比较全面
第二条:.dis流读取是否处于阻塞状态 其实就是考虑超时,
你问的如何设置,可以用下面这个方法
socket.setSoTimeout(int timeout);
  • 打赏
  • 举报
回复
CSDN 中以前有人提过类似问题。
http://topic.csdn.net/u/20091008/22/d8f3b210-0891-4cb2-9600-27f9affac0d6.html

LZ可以参考一下。




希望对你有帮助
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sodino 的回复:]

// 但在发送过程中因为某种原因数据流丢失,客户端conn.openDataInputStream()失败
// 如何得到失败标志呢?

在不抛异常的情况下:
1.判断conn.openDIS()返回值是否为null
2.dis流读取是否处于阻塞状态
3.dis已读取到流结尾返回为-1

考虑下这三种应该够了
[/Quote]


....
i李小武 2011-02-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sodino 的回复:]

// 但在发送过程中因为某种原因数据流丢失,客户端conn.openDataInputStream()失败
// 如何得到失败标志呢?

在不抛异常的情况下:
1.判断conn.openDIS()返回值是否为null
2.dis流读取是否处于阻塞状态
3.dis已读取到流结尾返回为-1

考虑下这三种应该够了
[/Quote]
+1
超时也可以考虑一下!
Sodino 2011-02-20
  • 打赏
  • 举报
回复
// 但在发送过程中因为某种原因数据流丢失,客户端conn.openDataInputStream()失败
// 如何得到失败标志呢?

在不抛异常的情况下:
1.判断conn.openDIS()返回值是否为null
2.dis流读取是否处于阻塞状态
3.dis已读取到流结尾返回为-1

考虑下这三种应该够了
huyong479072052 2011-02-20
  • 打赏
  • 举报
回复
数据丢失 客户端应该会等待接收吧、、
设置超时。。
幽饮烛 2011-02-20
  • 打赏
  • 举报
回复
try catch ,就是在这种情况下使用的。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧