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

moxiuliang 2002-05-24 05:04:19
在网页中能否用applet实现两个客户端的直接通信,双方实现实时通信?
...全文
12 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告