Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了用golang解决 Flash AS3 的 socket 安全策略文件问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

代码如下:

</pre><pre>package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"time"
)

const (
	Head = 4
)

var (
	ClientMap map[int]net.Conn = make(map[int]net.Conn)
)

func main() {
	fmt.Println(os.Args[0])
	ip_port := "127.0.0.1:843"
	if len(os.Args) > 1 {
		ip_port = os.Args[1]
	}
	fmt.Println(
		"\nFlash AS 策略服务运行中...\n自动回应SocketXml端口(即843端口)的crossdomain.xml请求\n如需指定ip和端口,可以在程序启动时指定参数,格式如下\ngameserver843.exe 192.168.101.139:843","\n当前正在侦听",ip_port,"\n请不要关闭此窗口...")
	tcpaddr,err := net.ResolveTCpaddr("tcp4",ip_port)
	checkError(err)
	listener,err := net.ListenTCP("tcp",tcpaddr)
	checkError(err)
	clienTindex := 0

	for {
		clienTindex++
		conn,err := listener.Accept()
		if err != nil {
			conTinue
		}
		go handleClient(conn,clienTindeX)
	}
}

func handleClient(conn net.Conn,index int) {
	ClientMap[index] = conn

	fmt.Println("")
	fmt.Println("=======================")
	fmt.Println("新用户连接,来自: ",conn.RemoteAddr(),"index: ",indeX)
	fc := func() {
		time.Sleep(time.Second) //给客户端1秒的响应的时间,否则客户端有可能读不到数据就提前Close了
		conn.Close()
		delete(ClientMap,indeX)
		fmt.Println("移除序号为: ",index,"的客户端,断开客户端的连接")
		fmt.Println("=======================")
	}
	defer fc()
	sendFirstmsg(conn)
}
func sendFirstmsg(conn net.Conn) {
	str := `<?xml version="1.0"?>
			<!DOCTYPE cross-domain-policy SYstem "/xml/dtds/cross-domain-policy.dtd">
			<cross-domain-policy>
				<site-control permitted-cross-domain-policies="master-only"/>
				<allow-access-from domain="*" to-ports="*" />
			</cross-domain-policy>`
	writer := bufio.NewWriter(conn)
	writer.WriteString(str)
	writer.Flush()
	fmt.Println("已经回应策略文件:crossdomain.xml")
}
func checkError(err error) {
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	}
}


装好golang环境,然后直接 go run main.go 就行了。

当然,也可以直接下载我编译好的 exe 可执行文件

下载页面如下:

https://github.com/moketao/XmlSocket_843

大佬总结

以上是大佬教程为你收集整理的用golang解决 Flash AS3 的 socket 安全策略文件问题全部内容,希望文章能够帮你解决用golang解决 Flash AS3 的 socket 安全策略文件问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。