解决flex的安全策略以后无法读取客户端的数据

糖牙 2009-10-10 10:57:39
TcpListener server = null;
private static String crossdomain = "<?xml version=\"1.0\"?><cross-domain-policy><site-control permitted-cross-domain-policies=\"all\"/><allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy>\0";
private void socketstar()
{
#region 端口输入判断
string p = txtport.Text;
string addr = txtAddress.Text;
if (addr==null||addr==""||p == null ||p == "")
{
MessageBox.Show("IPAddress或port不能为空!");
return;
}
button2.Enabled = true;
button1.Enabled = false;
timer1.Enabled = true;//启动计时器
#endregion
try
{
#region 服务器socket启动
Int32 port = Convert.ToInt32(p);
IPAddress localAddr = IPAddress.Parse(addr);
server = new TcpListener(localAddr,port);
server.Start();
listBox1.Items.Add("等待连接...");
#endregion

Byte[] bytes = new Byte[1024];
String data = null;
while (true)
{
TcpClient client = server.AcceptTcpClient();
NetworkStream stream = client.GetStream();
//安全沙箱
byte[] cross = System.Text.Encoding.GetEncoding("gb2312").GetBytes(crossdomain);
stream.Write(cross, 0, cross.Length);


#region 读取客户端数据,然后返回读取的数据
int i;
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0 ){ 异常:无法从传输连接中读取数据,您的主机中的软件放弃了一个已建立的连接

data = null;

data = System.Text.Encoding.GetEncoding("gb2312").GetString(bytes, 0, i);
listBox1.Items.Add("收" + data);
data = data.ToUpper();
byte[] msg = System.Text.Encoding.GetEncoding("gb2312").GetBytes("hello,send success:" + data);
stream.Write(msg, 0, msg.Length);
listBox1.Items.Add("发" + System.Text.Encoding.GetEncoding("gb2312").GetString(msg));
}
#endregion
client.Close();

}
}
catch (SocketException e)
{
listBox1.Items.Add("异常:" + e.Message);
}
finally
{
server.Stop();
}

}

我将项目发布到iis服务器上面,
解决安全沙箱的问题。。但得不到客户端输入的数据。
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guo_sky 2009-10-13
  • 打赏
  • 举报
回复
学习。。。
水中影子 2009-10-10
  • 打赏
  • 举报
回复
flex 出于对于安全的考虑,不能直接操作本地的文件

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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