在网页中能否用applet实现两个客户端的直接通信?急!!!

moxiuliang 2002-05-24 05:04:19
在网页中能否用applet实现两个客户端的直接通信,双方实现实时通信?
...全文
27 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bbshero 2002-05-29
、用java.net包建立双向通讯
   第二种方法是利用java.net包提供的网络能力。以有连接流通讯方式为例,在服务器端的操作为一般为:
   ⑴ 创建一个ServerSocket对象,在指定端口监听客户端发来的请求。
   ⑵ 在接收到请求时accept()方法将返回一个Socket对象。
   ⑶ 用上述Socket对象创建输入、输出流对象。
   ⑷ 通过输入、输出流与客户交互。
   ⑸ 交互完毕,关闭输入、输出流与Socket。
   ⑹ 服务程序运行结束,关闭ServerSocket。
   实现代码代码类如:
try{
boolean flag=true;
Socket clientSocket=null;
ServerSocket serverSocket = new ServerSocket(0);
System.out.println("Server listen on: " +serverSocket.getLocalPort());
while(flag){
clientSocket=serverSocket.accept();
DataInputStream is=new DataInputStream( new bufferedInputStream(clientSocket.getInputStream()));
PrintStream os=new PrintStream( new bufferedOutputStream(clientSocket.getOutputStream()));
// 处理Applet请求
os.close();
is.close();
clientSocket.close();
}
serverSocket.close();
}catch( IOException e){
System.err.println(" Exception: "+e);
}
   在客户端的操作为:
   ⑴ 创建Socket对象建立与服务器的连接。
   ⑵ 用该Socket对象创建输入、输出流。
   ⑶ 与服务器交互。
   ⑷ 交互完毕,关闭输入、输出流与Socket。
   实现代码类如:
try {
Socket clientSocket =new Socket("serverName",7);
OutputStream os=clientSocket.getOutputStream();
DataInputStream is=new DataInputStream( clientSocket.getInputStream());
// 其它操作.
os.close();
is.close();
clientSocket.close();
}catch(Exception e){
System.err.println("Exception:"+e);
}
   这种方法只依赖于标准的Java网络支持,不需要用到附加的软件包或工具, 因此显得相当简洁和灵活,易于实现某些特殊的需要。但在另一方面,服务器端对进入请求以及客户端对返回结果的分析工作量较大。如果服务器端要执行大量的操作,可以考虑使用RMI。
  • 打赏
  • 举报
回复
michael3769 2002-05-28
还得通过服务器做中介才可以。
  • 打赏
  • 举报
回复
yzysy 2002-05-28
不能
具体情况请参见http://www.linuxaid.com.cn/developer/showdev.jsp?i=331
  • 打赏
  • 举报
回复
zijianyi 2002-05-27
啊?怎么乱码呀,还说学习学习呢

up
  • 打赏
  • 举报
回复
michael3769 2002-05-27
鍙兘涓嶅彲浠ュ惂銆傛垜璇翠笉濂姐€侸ava 楂樻墜浠€庝箞浼氬杩欎釜闂缃箣涓嶇悊锛燂紵锛燂紵锛燂紵
  • 打赏
  • 举报
回复
michael3769 2002-05-25
看来各位大虾对这个问题也一筹莫展。
  • 打赏
  • 举报
回复
发帖
Web 开发

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
加入社区
帖子事件
创建了帖子
2002-05-24 05:04
社区公告
暂无公告