在faq里的 ----------------------------------------
用httpurlconnection好了,因为都是http的连接。
在httpurlconnection里可以给servlet传递参数,也可以接收servlet发送出来的符合http协议的data,httpurlconnection有相应的方法分析http-head,不过http-body,也就是html就需要自己来分析。
还有就是applet只可以与它被下载的服务器的servlet通信。
---------------------------------------------------------------
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();
}
}
我不是高手,别人的代码借过来用一下,共同学习。
用httpurlconnection好了,因为都是http的连接。
在httpurlconnection里可以给servlet传递参数,也可以接收servlet发送出来的符合http协议的data,httpurlconnection有相应的方法分析http-head,不过http-body,也就是html就需要自己来分析。
还有就是applet只可以与它被下载的服务器的servlet通信。
---------------------------------------------------------------
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();
}
}
我不是高手,别人的代码借过来用一下,共同学习。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货