我阅读了文档,但目前尚不清楚它bind()与connect()方法之间的区别.
Sco*_*t A 10
bind()使套接字侦听特定接口/端口上的传入请求.换句话说,服务器使用它来响应传入的请求.只有一个套接字可以绑定端口.
connect()使套接字连接到由不同套接字服务的地址/端口.换句话说,它被客户端用于连接到服务器.多个客户端可以连接到端口.注意:连接()不需要与UDP(数据报)套接字一起使用,只需要TCP/IP.UDP是一种广播协议,connect()甚至不要求套接字正在监听另一端.
这样的事情(改编自文档和未经测试)应该发送和接收消息"你好,萝卜!" 到12345端口:
package
{
import flash.events.DatagramSocketEvent;
import flash.net.DatagramSocket;
public class TestClass
{
private var serverSocket:DatagramSocket = new DatagramSocket();
private var clientSocket:DatagramSocket = new DatagramSocket();
public function TestClass():void
{
this.serverSocket.bind(12345, "127.0.0.1");
this.serverSocket.addEventListener(DatagramSocketDataEvent.DATA, dataReceived);
this.serverSocket.receive();
send("Hello, turnip!");
}
public function sendData(message:String):void
{
var data:ByteArray = new ByteArray();
data.writeUTFBytes(message);
try
{
clientSocket.send(data, 0, 0, "127.0.0.1", 12345);
trace("sending: " + message);
}
catch (error:Error)
{
trace(error.message);
}
}
private function dataReceived(e:DatagramSocketDataEvent):void
{
var data:String = e.data.readUTFBytes(e.data.bytesAvailable);
trace("received: " + data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8281 次 |
| 最近记录: |