在本地执行ok,即双击打开html文件执行,但是上传到服务器,以http://abc.com/xxx这样访问执行,服务器只收到一个
<policy-file-request/>,然后3秒后断开,我无论怎么发送所谓的cross-domain-policy内容都无效,已经翻了所有的google和baidu,
并且在所有的目录,根目录都放了crossdomain.xml,并且也在论坛找了代码开了843端口,仍然问题同样。
已经两天了,真是没任何办法了,饭都没吃一口,我快昏了,想去死了
求求各位帮帮忙吧。我实在不行了。在服务器上运行的错误信息:
开始:ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=6667]
连接接受Socket[addr=/127.0.0.1,port=3299,localport=6667]
<< <policy-file-request/>
安全戳已经发送!
关闭....
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space我实在看不出是因为java内存溢出导致的问题还是<policy-file-request/>,请各位帮忙看看吧。
代码分三个文件,一个html一个java一个swfswf下载地址:
----------------------------------------------------------------------------------------------------------------------
http://dev.dschini.org/socketjs/socket.swf
html文件:
----------------------------------------------------------------------------------------------------------------------
<HEAD>
<TITLE> SocketJS: Realtime Javascript Sockets </TITLE>
<meta name="description" content="Sockets in Javascript">
<meta name="author" content="Manfred Weber">
<meta name="keywords" content="realtime,realtimejs,javascript,socket,flash,real,sockets,js,multiuser,dschini">
<style>
.title {
font-face:Verdana,Arial,sans-serif;
font-size:24px;
color:white;
}
.standard {
font-face:Verdana,Arial,sans-serif;
font-size:16px;
color:white;
}
</style>
</HEAD>
<SCRIPT LANGUAGE=JavaScript>
var nickname;
function connect_user(){
window.document.socket.SetVariable("data", "NICK "+nickname);
window.document.socket.TCallLabel("/", "send" )
document.getElementById("output").scrollTop = document.getElementById("output").scrollHeight;
}
function SocketOnInit(){};
function SocketOnData(data){
document.getElementById("output").value = data;
}
function SocketOnConnect(success){
if(success=="true"){
document.getElementById("output").value = "\n Connection established";
connect_user();
} else{
document.getElementById("output").value = "\n Connection failed";
}
}
function SocketOnClose(){
document.getElementById("output").value = "\n Connection closed";
} function SocketClose(){
window.document.socket.TCallLabel("/", "close" );
} function SocketConnect(host,port){
//alert("开始连接!");
nickname = document.getElementById("nickname").value;
window.document.socket.SetVariable("host", host);
window.document.socket.SetVariable("port", port);
window.document.socket.TCallLabel("/", "connect" );
//alert("连接结束!");
}
function SocketSend(data){
window.document.socket.SetVariable("data", data);
window.document.socket.TCallLabel("/", "send" );
}
</SCRIPT>
<BODY bgcolor="#ffffff">
<p> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width=1 height=1 id="socket">
<param name=movie value="socket.swf">
<param name=quality value=high>
<embed src="socket.swf" quality=high width=1 height=1 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" name="socket" swLiveConnect="true">
</embed>
</object> </p>
<form name="form1" action="#">
<table width="100%"> <tr> <td align="center">
<table style="border:1px solid black" cellpadding="15" width="500" bgcolor="#8e5275">
<tr> <td>
<font face="Verdana,Arial" size="36px" color="white"> <b> SocketJS </b> </font> <br/> </td>
</tr>
<tr> <td>
<table width="100%" bgcolor="#eeeeee" style="border:1px solid black">
<tr>
<td width="75%">
<input type="text" style="width:100%" name="nickname" id="nickname" value="TestName" onClick="this.value='';"> </td>
<td width="25%">
<input style="width:100%" type="button" value="Connect" onClick="SocketConnect('localhost',6667);"> </td>
</tr> <tr>
<td height="150" colspan="2">
<textarea style="width:100%;height:100%;background-color:#ddd" id="output" name="output">Enter Nickname and Connect!</textarea> </td>
</tr> <tr>
<td width="75%">
<input type="text" style="width:100%" name="input" id="input" value="Test Messages"> </td>
<td width="25%">
<input type="button" style="width:100%" name="send" value="Send" onClick="SocketSend(document.getElementById('input').value);"> </td>
</tr>
</table>
</td> </tr>
</table>
</td> </tr> </table>
</form>
</BODY>
</HTML>
java文件:
----------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;public class MyServer2 {
static String policyStr = "<cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0";
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(6667);
System.out.println("开始:" + s);
try {
Socket socket=s.accept();
try {
System.out.println("连接接受" + socket);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
while(true){
char b;
StringBuilder buffer = new StringBuilder();
while ((b = (char) in.read()) != -1) {
if (b == 0x0) {
break;
}
buffer.append(b);
}
String str = buffer.toString();
System.out.println("<< "+str);
if(str.equals("<policy-file-request/>")){
out.print(policyStr);
out.write(0x0);
out.println();
out.flush();
System.out.println("安全戳已经发送!");
}else{
out.print(str);
out.write(0x0);
out.println();
out.flush();
}
}
} finally {
System.out.println("关闭....");
socket.close();
}
} finally {
s.close();
}
}
}=====================================================
先运行MyServer2,然后将html文件和swf文件放在一个目录,直接双击打开html文件,是可以正常使用的,但通过http://abc.com/xxx这样的方式访问就发现问题了。请各位帮忙!打恩不言谢!
<policy-file-request/>,然后3秒后断开,我无论怎么发送所谓的cross-domain-policy内容都无效,已经翻了所有的google和baidu,
并且在所有的目录,根目录都放了crossdomain.xml,并且也在论坛找了代码开了843端口,仍然问题同样。
已经两天了,真是没任何办法了,饭都没吃一口,我快昏了,想去死了
求求各位帮帮忙吧。我实在不行了。在服务器上运行的错误信息:
开始:ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=6667]
连接接受Socket[addr=/127.0.0.1,port=3299,localport=6667]
<< <policy-file-request/>
安全戳已经发送!
关闭....
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space我实在看不出是因为java内存溢出导致的问题还是<policy-file-request/>,请各位帮忙看看吧。
代码分三个文件,一个html一个java一个swfswf下载地址:
----------------------------------------------------------------------------------------------------------------------
http://dev.dschini.org/socketjs/socket.swf
html文件:
----------------------------------------------------------------------------------------------------------------------
<HEAD>
<TITLE> SocketJS: Realtime Javascript Sockets </TITLE>
<meta name="description" content="Sockets in Javascript">
<meta name="author" content="Manfred Weber">
<meta name="keywords" content="realtime,realtimejs,javascript,socket,flash,real,sockets,js,multiuser,dschini">
<style>
.title {
font-face:Verdana,Arial,sans-serif;
font-size:24px;
color:white;
}
.standard {
font-face:Verdana,Arial,sans-serif;
font-size:16px;
color:white;
}
</style>
</HEAD>
<SCRIPT LANGUAGE=JavaScript>
var nickname;
function connect_user(){
window.document.socket.SetVariable("data", "NICK "+nickname);
window.document.socket.TCallLabel("/", "send" )
document.getElementById("output").scrollTop = document.getElementById("output").scrollHeight;
}
function SocketOnInit(){};
function SocketOnData(data){
document.getElementById("output").value = data;
}
function SocketOnConnect(success){
if(success=="true"){
document.getElementById("output").value = "\n Connection established";
connect_user();
} else{
document.getElementById("output").value = "\n Connection failed";
}
}
function SocketOnClose(){
document.getElementById("output").value = "\n Connection closed";
} function SocketClose(){
window.document.socket.TCallLabel("/", "close" );
} function SocketConnect(host,port){
//alert("开始连接!");
nickname = document.getElementById("nickname").value;
window.document.socket.SetVariable("host", host);
window.document.socket.SetVariable("port", port);
window.document.socket.TCallLabel("/", "connect" );
//alert("连接结束!");
}
function SocketSend(data){
window.document.socket.SetVariable("data", data);
window.document.socket.TCallLabel("/", "send" );
}
</SCRIPT>
<BODY bgcolor="#ffffff">
<p> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width=1 height=1 id="socket">
<param name=movie value="socket.swf">
<param name=quality value=high>
<embed src="socket.swf" quality=high width=1 height=1 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" name="socket" swLiveConnect="true">
</embed>
</object> </p>
<form name="form1" action="#">
<table width="100%"> <tr> <td align="center">
<table style="border:1px solid black" cellpadding="15" width="500" bgcolor="#8e5275">
<tr> <td>
<font face="Verdana,Arial" size="36px" color="white"> <b> SocketJS </b> </font> <br/> </td>
</tr>
<tr> <td>
<table width="100%" bgcolor="#eeeeee" style="border:1px solid black">
<tr>
<td width="75%">
<input type="text" style="width:100%" name="nickname" id="nickname" value="TestName" onClick="this.value='';"> </td>
<td width="25%">
<input style="width:100%" type="button" value="Connect" onClick="SocketConnect('localhost',6667);"> </td>
</tr> <tr>
<td height="150" colspan="2">
<textarea style="width:100%;height:100%;background-color:#ddd" id="output" name="output">Enter Nickname and Connect!</textarea> </td>
</tr> <tr>
<td width="75%">
<input type="text" style="width:100%" name="input" id="input" value="Test Messages"> </td>
<td width="25%">
<input type="button" style="width:100%" name="send" value="Send" onClick="SocketSend(document.getElementById('input').value);"> </td>
</tr>
</table>
</td> </tr>
</table>
</td> </tr> </table>
</form>
</BODY>
</HTML>
java文件:
----------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.net.*;public class MyServer2 {
static String policyStr = "<cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0";
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(6667);
System.out.println("开始:" + s);
try {
Socket socket=s.accept();
try {
System.out.println("连接接受" + socket);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
while(true){
char b;
StringBuilder buffer = new StringBuilder();
while ((b = (char) in.read()) != -1) {
if (b == 0x0) {
break;
}
buffer.append(b);
}
String str = buffer.toString();
System.out.println("<< "+str);
if(str.equals("<policy-file-request/>")){
out.print(policyStr);
out.write(0x0);
out.println();
out.flush();
System.out.println("安全戳已经发送!");
}else{
out.print(str);
out.write(0x0);
out.println();
out.flush();
}
}
} finally {
System.out.println("关闭....");
socket.close();
}
} finally {
s.close();
}
}
}=====================================================
先运行MyServer2,然后将html文件和swf文件放在一个目录,直接双击打开html文件,是可以正常使用的,但通过http://abc.com/xxx这样的方式访问就发现问题了。请各位帮忙!打恩不言谢!
通过http://abc.com/xxx这样的方式的时候路径方法名都对吗?