C# AS3客户端套接字可以';无法连接到本地网络服务器
我在一台电脑上有一个c#服务器插座,在另一台电脑上有一个客户端AS3插座,与第一台电脑位于同一个本地网络上。 问题是,当c#和AS3在同一台PC上时,连接正常,但当我在本地网络的另一台PC上移动c#时,AS3无法到达C# AS3客户端套接字可以';无法连接到本地网络服务器,c#,actionscript-3,sockets,serversocket,C#,Actionscript 3,Sockets,Serversocket,我在一台电脑上有一个c#服务器插座,在另一台电脑上有一个客户端AS3插座,与第一台电脑位于同一个本地网络上。 问题是,当c#和AS3在同一台PC上时,连接正常,但当我在本地网络的另一台PC上移动c#时,AS3无法到达 请参考以下代码: package { import flash.display.Sprite; public class SocketExample extends Sprite { private var sock
package {
import flash.display.Sprite;
public class SocketExample extends Sprite {
private var socket:CustomSocket;
public function SocketExample() {
socket = new CustomSocket("localhost", 80);
}
}
}
import flash.errors.*;
import flash.events.*;
import flash.net.Socket;
class CustomSocket extends Socket {
private var response:String;
public function CustomSocket(host:String = null, port:uint = 0) {
super();
configureListeners();
if (host && port) {
super.connect(host, port);
}
}
private function configureListeners():void {
addEventListener(Event.CLOSE, closeHandler);
addEventListener(Event.CONNECT, connectHandler);
addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function writeln(str:String):void {
str += "\n";
try {
writeUTFBytes(str);
}
catch(e:IOError) {
trace(e);
}
}
private function sendRequest():void {
trace("sendRequest");
response = "";
writeln("GET /");
flush();
}
private function readResponse():void {
var str:String = readUTFBytes(bytesAvailable);
response += str;
}
private function closeHandler(event:Event):void {
trace("closeHandler: " + event);
trace(response.toString());
}
private function connectHandler(event:Event):void {
trace("connectHandler: " + event);
sendRequest();
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function socketDataHandler(event:ProgressEvent):void {
trace("socketDataHandler: " + event);
readResponse();
}
}
检查您的防火墙规则和防病毒软件,查看该端口上的连接是否被阻止,并且计算机是否在同一子网中。事实上,flash不可能做到这一点,因此我改为android,效果更好。我自己做到了这一点,所以这并非不可能。这是可能的,我使用了AS 2.0,而您使用的是AS 3.0。所以这是可能的。只需在trusted one中添加套接字端口号。