zoukankan      html  css  js  c++  java
  • serverSocket与socket的使用

    1、使用serverSocket建立服务端:

       首先创建一个 serverSocket(一定要是个全局变量)

          private var server:ServerSocket;

       绑定到指定的本地址和端口

          server.bind( 6666, "119.138.64.241" );

       侦听绑定的IP地址和端口上的TCP连接 

          server.listen();

        当有客户端连接时(当客户端尝试连接到服务器套接字时,ServerSocket 对象调度 ServerSocketConnectEvent 对象)

          server.addEventListener(ServerSocketConnectEvent.CONNECT, onConnect);

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     3     
     4     <mx:Script>
     5         <![CDATA[
     6 
     7             private var server:ServerSocket;
     8             
     9             [Bindable]
    10             private var isRunning:Boolean = false;
    11 
    12             protected function start(event:MouseEvent):void
    13             {
    14                 if( !server )
    15                 {
    16                     server = new ServerSocket();
    17                 }
    18                 if( isRunning )
    19                 {
    20                     server.close();
    21                     server = null;
    22                 }
    23                 else
    24                 {
    25                     try
    26                     {
    27                         //绑定到指定的本地地址和端口
    28                         server.bind( 6666, "119.138.64.241" );
    29                         //侦听绑定的 IP 地址和端口上的 TCP 连接
    30                         server.listen();
    31                         server.addEventListener(ServerSocketConnectEvent.CONNECT, onConnect);
    32                     }
    33                     catch(e:*)
    34                     {
    35                         trace( e );
    36                     }
    37                 }
    38                 isRunning = !isRunning;
    39             }
    40             
    41             protected function onConnect(event:ServerSocketConnectEvent):void
    42             {
    43                 //trace( "connect..." );
    44                 var socket:Socket = event.socket;
    45                 socket.addEventListener(ProgressEvent.SOCKET_DATA, onReceive);
    46                 
    47                 outputTxt.text += "connect..." +"
    ";
    48             }
    49             
    50             protected function onReceive(event:ProgressEvent):void
    51             {
    52                 var socket:Socket = event.target as Socket;
    53                 //socket.readUTF();
    54                 var str:String = socket.readUTF();
    55                 
    56                 outputTxt.text += str + "
    ";
    57                 
    58                 //回发已收到的消息
    59                 socket.writeUTF( "Message received: " + str );
    60                 socket.flush();
    61             }
    62             
    63         ]]>
    64     </mx:Script>
    65     <mx:ApplicationControlBar left="10" right="10" top="10" bottom="415" horizontalAlign="right">
    66         <mx:Button id="startBT" label="{isRunning?'Stop':'Start'}" click="start(event)"/>
    67     </mx:ApplicationControlBar>
    68     <mx:TextArea id="outputTxt" left="10" right="10" top="59" bottom="10"/>
    69     
    70 </mx:WindowedApplication>

    2、使用socket建立客户端
        创建 scoket 对象

        private var socket:Socket;

        socket = new Socket();

       连接服务端(地址和端口要和服务端一到致)

       socket.connect( "119.138.64.241", 6666 );

       侦听socket的连接

       socket.addEventListener(Event.CONNECT, onConnect );   

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     3     
     4     <mx:Script>
     5         <![CDATA[
     6             import mx.events.FlexEvent;
     7 
     8             private var socket:Socket;
     9             protected function connectServer(event:MouseEvent):void
    10             {
    11                 socket = new Socket();
    12                 socket.connect( "119.138.64.241", 6666 );
    13                 socket.addEventListener(Event.CONNECT, onConnect );    
    14                 socket.addEventListener(ProgressEvent.SOCKET_DATA, receiveServerMsg);
    15             }
    16             
    17             protected function onConnect(event:Event):void
    18             {
    19                 outputTxt.text += "connect..." + "
    ";
    20             }
    21             
    22             protected function sendMsg(event:FlexEvent):void
    23             {
    24                 if( socket.connected )
    25                 {
    26                     socket.writeUTF( inputTxt.text );
    27                     socket.flush();
    28                 }
    29             }
    30             
    31             /**
    32              * 接收服务器回发的消息
    33              * 
    34              **/
    35             protected function receiveServerMsg(event:ProgressEvent):void
    36             {
    37                 var socket:Socket = event.target as Socket;
    38                 var str:String = socket.readUTF();
    39                 outputTxt.text += str + "
    ";
    40             }
    41             
    42         ]]>
    43     </mx:Script>
    44     
    45     <mx:ApplicationControlBar left="10" right="10" top="10" bottom="415" horizontalAlign="right">
    46         <mx:Label text="ID"/>
    47         <mx:TextInput id="idInput" text="kft"/>
    48         <mx:Button id="connectBT" label="connect" click="connectServer(event)"/>
    49     </mx:ApplicationControlBar>
    50     <mx:TextArea id="outputTxt" left="11" right="9" top="67" bottom="40"/>
    51     <mx:TextInput id="inputTxt" left="10" right="10" bottom="10" height="22" enter="sendMsg(event)"/>
    52 </mx:Application>
  • 相关阅读:
    【noi 2.6_9270】&【poj 2440】DNA(DP)
    【noi 2.6_9271】奶牛散步(DP)
    【noi 2.6_747】Divisibility(DP)
    【noi 2.6_7113】Charm Bracelet(DP)
    【noi 2.6_9268】酒鬼(DP)
    【noi 2.6_9267】核电站(DP)
    【noi 2.6_9265】取数游戏(DP)
    【noi 2.6_2000】&【poj 2127】 最长公共子上升序列 (DP+打印路径)
    【noi 2.6_8786】方格取数(DP)
    【noi 2.6_90】滑雪(DP)
  • 原文地址:https://www.cnblogs.com/actionkong/p/3455776.html
Copyright © 2011-2022 走看看