请教高手applet如何用socket和servlet进行通讯?(最好有项细代码)

liucai 2002-12-02 09:31:19
rt
...全文
35 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liucai 2002-12-03
  • 打赏
  • 举报
回复
高手快来呀!!!!
tech_ajun 2002-12-02
  • 打赏
  • 举报
回复
下面是用socket和servlet进行通讯的客户端代码,要注意,JAVA的权限要求,在APPLET中进行socket通讯,servlet和APPLET的WEB服务器必须在一个IP地址上
con = url.openConnection();
//设置连接属性
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
//取得输出流
writer = new PrintWriter(con.getOutputStream());

//输出对象
writer.println(argInput);
writer.flush();
writer.close();
//取得输入流
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String buffer = reader.readLine();
liucai 2002-12-02
  • 打赏
  • 举报
回复
高手们,帮忙啊!
liucai 2002-12-02
  • 打赏
  • 举报
回复
帅哥,我找你说的做了,为什么没有效果?
qljsd 2002-12-02
  • 打赏
  • 举报
回复
需要修改一个文件,路径是: “你的jdk的目录“\jre\lib\security\java.policy。
在文件中加入代码:
permission java.net.SocketPermission "-", "listen";
permission java.net.SocketPermission "-", "accept";
permission java.net.SocketPermission "-", "connect";
permission java.net.SocketPermission "-", "read";
permission java.net.SocketPermission "-", "write";
qljsd 2002-12-02
  • 打赏
  • 举报
回复
你得在客户端加权限!
liucai 2002-12-02
  • 打赏
  • 举报
回复
没人回复,只好自己up
liucai 2002-12-02
  • 打赏
  • 举报
回复
我的程序在运行是出现错误如下,Exception:java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.1.119:80 connect,resolve),请问这是什么原因?
qljsd 2002-12-02
  • 打赏
  • 举报
回复
Socket s = new Socket(hostIP,hostPort);
liucai 2002-12-02
  • 打赏
  • 举报
回复
我其实关心的是applet怎扬连servlet,是Socket clientSocket =new Socket(ip,port)吗?还是要指定哪一个servlet,如Socket clientSocket =new Socket(servletUrl,port)?
qljsd 2002-12-02
  • 打赏
  • 举报
回复
ServerSocket serverSocket = null;
private DataOutputStream outStream = null;
private DataInputStream inStream = null;
try {
serverSocket = new ServerSocket(port);

socket = serverSocket.accept();

//initialize socket,outStream
inStream = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
outStream = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));

//receive Msg from client
int len = inStream.readInt();
//if(len <= 0) {
//return;
//}
byte[] readBytes=new byte[len];
int i=0,j=len;
//获取返回信息
while(j>0) {
int k=inStream.read(readBytes,i,j);
i=i+k;
j=j-k;
}
String clientMsg = new String(readBytes,0,len,"GB2312");

//send Ack to client
byte[] sendBytes = null;

sendBytes = "<Ack>error</Ack>".getBytes("GB2312");
outStream.writeInt(sendBytes.length);
outStream.write(sendBytes);
outStream.flush();
outStream.close();
socket.close();
}
catch(Exception e) {
if(socket != null) {
socket.close();
}
if(outStream != null) {
outStream.close();
}
if(inStream != null) {
inStream.close();
}
}
liucai 2002-12-02
  • 打赏
  • 举报
回复
再次请高手们多多费心~!
liucai 2002-12-02
  • 打赏
  • 举报
回复
多谢tech_ajun()兄的回复,不过我需要的不是这种通讯方式,而是要在servlet上创建ServerSocket对象接受applet发出信息的这种socket通讯方式。

62,614

社区成员

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

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