Flex와 .NET 간의 상호 운용성 (1): 소켓 기반 네트워크 연결

巴扎黑
풀어 주다: 2016-12-20 15:16:09
원래의
1501명이 탐색했습니다.

Flash/Flex도 소켓 기반의 네트워크 연결을 지원하며 서버측은 C++, VB, C#, Java 등 모든 언어로 개발이 가능합니다. 네트워크 포트를 수신함으로써 Flash/Flex로 개발된 클라이언트로부터 연결을 수신할 수 있습니다.

ActionScript 3.0은 소켓 연결을 통해 서버와의 통신을 제공합니다. 이는 기존의 B/S 구조를 뛰어넘는 중요한 특징입니다. 이를 통해 네트워크 통신을 즉시 연결할 수 있으며 HTTP 프로토콜의 상태 비저장 연결의 단점을 피할 수 있습니다. ActionScript 3.0에서는 연결을 위해 XMLSocket 클래스를 사용합니다. 소켓 연결을 위해 XMLSocket 클래스를 사용하는 경우 방화벽을 자동으로 통과할 수 없다는 점에 유의해야 합니다. 방화벽을 통해 연결하려면 HTTP 프로토콜 기반의 RTMP 프로토콜을 사용해야 합니다.

Adobe에서 제공하는 API 설명서를 참조하면 XMLSocket이 네 가지 공개 메서드를 제공한다는 것을 알 수 있습니다.

1 XMLSocket(host:String=null,port:int=0)-Create 새로운 XMLSocket 객체.

2. close():void--XMLSocket을 닫습니다.

3. connect(host:String,port:int):void--지정된 TCP 포트에 연결합니다.

4. send(object:*):void--연결 서버로 데이터를 보냅니다.

이를 이해한 후에는 XMLSocket을 사용하여 소켓 기반 네트워크 실시간 통신 애플리케이션을 개발할 수 있습니다. 다음은 C#을 통해 소켓 서버를 제공하고 포트 8888을 수신합니다. 샘플 프로그램은 다음과 같습니다.

1usingSystem;
2usingSystem.Collections.Generic;
3usingSystem.Linq;
4usingSystem.Text;
5usingSystem .Net.소켓;
6usingSystem.IO;
7
8namespaceFlashFlexDotNet
9{
10classProgram
11{
12staticvoidMain(string[]args)
13{
14TcpListenerlistener ;
15
16try
17{
18listener=newTcpListener(8888);
19}
20catch(Exceptionex)
21{
22Console.WriteLine (예: 메시지);
23return;
24}
25
26listener.Start();
27Console.WriteLine("서버가 시작되고 클라이언트 연결을 기다리는 중입니다.");
28boolloop= true;
29
30while(loop)
31{
32Sockets=listener.AcceptSocket();
33NetworkStreamns=newNetworkStream(s);
34StreamReaderreader=newStreamReader(ns );
35stringresult=string.Empty;
36try
37{
38result=reader.ReadLine();
39Console.WriteLine(result);
40}
41catch (예외예)
42{
43Console.WriteLine(ex.Message);
44}
45}
46}
47}
48}
49

서버측 Socket이 준비되었습니다. 클라이언트의 ActionScript의 XMLSocket이 .net Socket 서버와 통신하기 위해 어떻게 Socket 연결을 설정하는지 살펴보겠습니다.

이 기사의 앞부분에서 소개한 것처럼 ActionScript 3.0은 소켓 기반 네트워크 통신을 개발하는 데 직접 사용할 수 있는 소켓 기반 네트워크 연결 클래스 XMLSocket을 제공합니다. 다음과 같이 ActionScript 3.0에서 제공하는 XMLSocket을 기반으로 네트워크 연결을 설정합니다.

1privatefunctionconnectionServer():void
2{
3xmlConn=newXMLSocket();
4xmlConn.connect("127.0.0.1",8888);
5}

이후 XMLSocket 인스턴스 메소드 send()를 통해 소켓 서버에 메시지를 보낼 수 있습니다. 다음 코드 정의:

1privatefunctiononSend():void
2{
3xmlConn.send(txtData.text+"n");
4}

전체 클라이언트 코드:

1
23BackgroundGradientAlphas="[1.0,1.0]"
4BackgroundGradientColors="[#CDCAE6,#FFFFFF]">
5
67importmx.controls.Alert;
8
9privatevarxmlConn:XMLSocket;
10
11privatefunctionconnectionServer():void
12{
13xmlConn=newXMLSocket( );
14xmlConn.connect("127.0.0.1",8888);
15}
16
17privatefunctiononSend():void
18{
19xmlConn.send(txtData.text+ "n");
20}
21]]>
22

23
24
25
26


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!