TCP in a native extension

I tried contacting a developer by the name of Wouter Verweirder about my work, based on his native extension, but have been unable to reach him.  His native UDPSocket extension can be found here:

https://github.com/wouterverweirder/air-mobile-UDP-extension

I hope someone here can help me about this survey:

I have reasons to write a native extension like hers, but for TCP communication and not UDP.

I am very familiar with the protocols UDP and TCP networking at the packet level, as well as at the level of the source code in several languages.  I replaced its UDP components with their counterparts TCP depending on the case, but I get no communication at all.

To start from the square, I did firstly I could build its extension of the source code, then use DONKEY resulting with my Android application for UDP communication as he originally intended.

Then, I simply added the following as a test at the end of its UDPSocketAdapter constructor (in red):

public UDPSocketAdapter(UDPSocketContext context) { }

          this . framework = context;

          this . hasSentClose = fake;

          try {

channel = DatagramChannel. Open ();

channel .configureBlocking (real);

               socket = channel . Socket();

{ } catch (SocketException e) { }

{ } catch (IOException e) { }

}

theReceiveQueue = new LinkedBlockingQueue < DatagramPacket > ();

try {}

Tsocket socket = new Socket ("192.168.2.23", 8137);

OutputStream outStream is tsocket. getOutputStream ();

Byte [] = data {'h', 'e', 'l', 'l', 'o', ' w ',' ', 'o', 'r', 'l' ' d ' "};

outStream.write (data);

outStream.flush ();

outStream.close ();

tsocket. Close();

} catch (IOException e1) {}

Newspaper. put ("i/o exception: \r\n" + Log stack2string (e1) + "\r\n");

}

}

(Of course, I also imported the Socket and OutputStream classes.)  After I have reconstitute the DONKEY and then recompile and run my application, not only I do not see my test TCP traffic in my sniffer, but all of its features UDP that worked before, is now broken and I have zero UDP communication!

The line of code in my catch block send anything to my file of log (via my logging class), so I don't know my test code generates an exception.  (And in fact, my test code works fine in another entirely native Android app.)

I just have something fundamental missed?  I appreciate any suggestion that anyone could have.

Thank you.

Finally, I decided that the Socket object must be instantiated in a worker thread, and then successful TCP connections.

For some reason if an attempt is made to instantiate the plug in the main thread, any communication of any kind to the native extension of breaks network.

I have no idea why that would be a problem for TCP, but not UDP, as evidenced by the native extension of UDP work, on which I based my work, which instantiates a DatagramSocket in the main thread without problem.

I suspect it has something to do with the behavior oriented TCP connection and negotiation tripartite server that happens immediately when a Socket object is created.  Because the absence of that UDP is the only functional difference between the two cases.

Maybe someone with a deep understanding of native extensions AIR has more specific information.

Tags: Adobe AIR

Similar Questions

  • Debug the native extension (ANE) AIR

    Is it possible to debug somehow AIR native extensions when the current on the PlayBook, or at least get the reactions of output/print-debugging?

    I tried as described in this tutorial , but don't know where the exit fprintf/fflush

    The stdout and stderr are still redirected to the logs/log file in the current directory of your application.  You can view directly, assuming you have no other means, using SSH to connect to your PlayBook or Simulator and find the folder appdata for your application.

    Some information about the file system configuration is http://supportforums.blackberry.com/t5/Tablet-OS-SDK-for-Adobe-AIR/BlackBerry-PlayBook-File-System-L...

    Many other sons and all blog posts have covered connection via SSH.

  • Context of screen WebWorks in native extension

    I am trying to build a native extension for WebWorks (BB10) to control the timeout for my application screen.

    Ideally, I would like to set a longer time limit when my application is in the foreground, without affecting parameters of time-out of the camera itself. I see SCREEN_PROPERTY_IDLE_TIMEOUT in , which could be used to this end, I hope.

    If this is not possible, another approach would be to set the screen for SCREEN_IDLE_MODE_KEEP_AWAKE and the SCREEN_IDLE_MODE_NORMAL press on the calendar, controlled by JavaScript code.

    I got as much as

    (a) get memoryJnext sample work in my application and

    (b) screen_set_window_property_iv (screen_win, SCREEN_PROPERTY_IDLE_MODE, & idle_mode) to find code snippet.

    The question is how can I assign WebWorks context of windows app to screen_win?

    We've thought of it.

    Extension is now online here: https://github.com/blackberry/WebWorks-Community-APIs/tree/master/BB10/PreventSleep

  • How to include the shared library of BlackBerry in a native extension WebWorks

    I developed a native extension WebWorks that works very well on Simulator and devices when included in a webworks app.

    I also have a sample of waterfalls project with the same code base that I use to test the WebWorks extension code.

    Since a large part of the code is reusable, I decided to create a shared library of BlackBerry, so I can reuse in other projects. When I include the NEW shared library in the waterfalls and then everything works well, as before.

    When I include it in the extension WebWorks it draws very well. The .so file size was much smaller and that worried me (I suspected that the shared library was not included in there). But since its construction very well I went trying to run my application webworks. When it came to hitting the extension I got a ' need of error. Cannot find the library of blah/blah/...so'.

    I had this before and found out that it was because the dependent QT libraries have not been correctly referenced. It so that the shared library is not properly referenced/copied /-thing... This event is supported? For example, by using a custom in a WebWorks extension shared library?

    It worked

    Version 2 is almost right

    In the library paths pane Add...

    ${workspace_loc: / / extlibs/device$ {ProjName}}

    for peripheral and do Simulator

    ${workspace_loc: / / extlibs/Simulator of ${ProjName}}

    Always with libname in libraries

    I just linked to unrar successfully like this library

    Whew - they do this hard work of stuff

  • problem with the SWF version when you use a native extension

    Hello

    I am trying to create an android app where I use a donkey BT (Extension Native Android).  After packaging wih ADT, I get the following message:

    Included native extension "com.myflashlab.air.extensions.bluetooth" includes a

    SWF 25 version that is greater than the root SWF version of this

    application: 17


    Anyone who knows how to change the swf to a swf file version?

    Another article, the CS6-oriented:

    https://chrisgriffith.WordPress.com/2012/07/20/updating-Flash-Professional-CS6-to-support-11-4 /.

    The procedure should work for later versions, simply to find the files to Flash Player 14 or later.

  • Muse does not open. Adobe AIR the required native extension is missing for this application...

    Muse does not open. "Adobe AIR the required native extension is missing for this application...". »

    Any ideas?

    Hi Curt,.

    Please try after the sequence of steps to make it work.

    1. uninstall any version of AIR on your computer using the Adobe AIR * remove Adobe AIR

    2 uninstall Muse to your machine using cleaning tool CC use the Adobe Creative Cloud cleaning tool to solve installation problems

    3 uninstall the applications Manager Adobe as well use the Adobe Creative Cloud cleaning tool to solve installation problems

    4. install AIR runtime 19.0 https://helpx.adobe.com/air/kb/archived-air-sdk-version.html

    5. install the applications Manager Adobe Download Adobe Creative Cloud apps | Adobe Creative Cloud free trial

    5. once the MAO is installed then install muse and launch it.

    Kind regards

    Vivek

  • Bad results ComputeSum native extension of sample

    Hi, I have just landed in the world of native extensions of Flash and tried to use the sample.dll extension for example computeSum.

    I build the 64 version DLL with Visual Studio 2010. It is running and can be debugged, but the second argument of the function, regardless of its value, is always converted to native 0 long. When the value is traced in the .jsfl script it gives the correct value, but in the native portion is converted to zero and the return value of the sum is incorrect.

    I know that this is only an example and this cannot happen in my own native library for other purposes, but I need to know if there is an internal bug in the API native flash for not having headaches more than necessary when debugging my code.

    Thanks in advance,

    David.

    Somehow, it seems that the arguments past number occupies just twice in the argv, so the offset of the first argument is 0, but the offset of the second argument is not 1, but rather 2.

    Does anyone have an explanation for this? Y at - it all the compiler settings I should change to get the correct pointer size? Right now I use a macro to access the arguments that just multiplies by 2 to get the 'real' offset

    Any ideas would be much appreciated. For the moment, I guess I can continue with this workaround.

    David.

  • Air for Android 16.0 - cannot use the native extension that include android-support-v4 - ClassNotFoundException

    Hello

    This is my first question here, and I really need help on this problem. We are been struggling for a few days on the following error message: C

    05-12 17:35:29.321: E/AndroidRuntime (26531): FATAL error: IntentService [MCGcmIntentService]

    05-12 17:35:29.321: E/AndroidRuntime (26531): process: air.com.mooncat.androidTest, PID: 26531

    05-12 17:35:29.321: E/AndroidRuntime (26531): java.lang.NoClassDefFoundError: doesn't have a resolution of: generator Landroid/support/v4/app/NotificationCompat$;

    05-12 17:35:29.321: E/AndroidRuntime (26531): to com.mooncat.MCGooglePlayServices.MCGcmIntentService.sendNotification (MCGcmIntentService.j ava: 92)

    05-12 17:35:29.321: E/AndroidRuntime (26531): to com.mooncat.MCGooglePlayServices.MCGcmIntentService.onHandleIntent (MCGcmIntentService.jav one: 48)

    05-12 17:35:29.321: E/AndroidRuntime (26531): to android.app.IntentService$ ServiceHandler.handleMessage (IntentService.java:65)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at android.os.Handler.dispatchMessage(Handler.java:102)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at android.os.Looper.loop(Looper.java:145)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at android.os.HandlerThread.run(HandlerThread.java:61)

    05-12 17:35:29.321: E/AndroidRuntime (26531): caused by: java.lang.ClassNotFoundException: did not find class ' android.support.v4.app.NotificationCompat$ Builder " on the path: DexPathList [[zip file ' /data/app/air.com.mooncat.androidTest-1/base.apk"],nativeLibraryDirectories=[/data/app/a ir.com.mooncat.androidTest-1/lib/arm, / vendor/lib, / system/lib ']]

    05-12 17:35:29.321: E/AndroidRuntime (26531): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)

    05-12 17:35:29.321: E/AndroidRuntime (26531):... 6 more

    05-12 17:35:29.321: E/AndroidRuntime (26531): deleted: java.lang.ClassNotFoundException: android.support.v4.app.NotificationCompat$ Builder

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.Class.classForName (Native Method)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.BootClassLoader.findClass(ClassLoader.java:781)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)

    05-12 17:35:29.321: E/AndroidRuntime (26531): at java.lang.ClassLoader.loadClass(ClassLoader.java:504)

    05-12 17:35:29.321: E/AndroidRuntime (26531):... 7 more

    05-12 17:35:29.321: E/AndroidRuntime (26531): caused by: java.lang.NoClassDefFoundError: class not found using the charger to start class; no batteries available

    My Native Extension use Google Services play and rely on support android v4. Google services functions perfectly works play (for example: I am able to save the token with the google cloud features).

    I've seen this problem in another thread in github and seems that they solve it, but it does not fit my case. It's like in the publication of flash support android v4 is "removed". I say this because I tried to decompile the generated apk and I discovered that sources exist (like com / / thing, com, google, android, gms /...) BUT not the android/support/v4 /... On the contrary, seems that the apk build contains only the android/support/v7/appcompat/R.java (.java because is decompiled). In the .ane file, I have the Android - support.v4.jar and also the contents of platform.xml to/META-INF/ANE/Android-ARM. In the platform.xml I have this:

    <? XML version = "1.0" encoding = "utf-8"? >

    " < platform xmlns =" http://ns.Adobe.com/air/extension/4.0 ">

    < packagedDependencies >

    < packagedDependency >android-support - v4.jar< / packagedDependency >

    < packagedDependency >google-game - services.jar< / packagedDependency >

    < / packagedDependencies >

    < packagedResources >

    < packagedResource >

    com.Google.Android.GMS < packageName > < / packageName >

    < folder_name > google-game-services-res < / FolderName >

    < / packagedResource >

    < / packagedResources >

    < / platform >


    In the eclipse project, I tried to register the library of v4 support in all possible ways, such as addiction, external jar, or kept as a defult library in the libs folder. Nothing works...


    I really can't understand hot to fix this crazy...

    I just discover the problem... just crazy!

    It was caused by the version of android.support.v4.jar. I did a test now, for some reason any magic, using one I had before (I got it, in Eclipse, with a right click on the library project, Android tools > add Media Library, it was not recognized). Then, I tried with the other two different versions of android.support.v4.jar, and this solved the problem as if by magic! Just to say, using the method add the support library, the size of the file android.support.v4 was 1.2 MB, the other two versions were respectively 759 KB and 628 kb, according to their version. I expected that this library has been correctly added by eclipse, also relying on the target of androd in the project.properties, but does not appear. Hope this might help someone.

    PS: like all the other thread suggest, don't forget that the android.support.v4.jar is included in your DONKEY file, and the platform.xml explicitly declare it as .

  • Cannot submit with custom native extension's iOS app

    We worked on the construction of our first DONKEY custom - the work of great native extension, but when I submit to the iOS app store he gets rejected with the error: -.

    Invalid signature - make sure you have signed your application with a certificate of distribution, not an ad hoc certificate or certificate of development. Verify that code in Xcode signing settings are correct at the target level (which cancels all values to the project level). If you are certain that your code signing settings are correct, click on "Clean" in Xcode, delete the 'build' directory in the Finder and rebuild your output target.

    When I remove the extension, the app does not get rejected, so I don't know that this is not the certificate that we use to publish the application itself.  We tried to sign the DONKEY with a self-signed certificate, or not to sign the DONKEY at all (as apparently signing DONKEY is optional).  In both cases if we submit the application with the ENA, he gets rejected with the error above.

    Can anyone offer any suggestions?

    How you create your native library, at a guess, I'd say you something messed up in the settings of Xcode. Have you created a static lib?

  • A few native extensions cannot be packed.

    Currently we have trouble with packaging API with adobe air 16. (16.0.0.272)

    The nature of the problem is almost exactly the same with this:undefined symbols of architecture armv7 (AIR 16)

    Everything goes very well with 15 AIR but fails native extension, connects causing problem.

    e0635c7febbe515522515941ec25b3bb.png

    Although we have identified that a native extensions caused this evil, we cannot do just something that we don't have access to the source code of it.

    We asked the author of the extension in support of 16 AIR, but said it wasn't their problem.

    Since the AIR 16 is a must for iOS release, demotion or 15 isn't an option... is there a way around this problem?

    I didn't know that I was using an old DONKEY file. When you use the last DONKEY file that supports 64-bit AIR for iOS apps that worked like a charm.

    I think that it is the responsibility of the developers of 3rd party DONKEY to provide an update for supported 64-bit and support SDK AIR 16.0.

    If the author says it isn't their problem they are not taking care of their responsibilities as developer ANE 3rd part.

  • What are your 3 favorite AIR Native Extensions albums? (any OS)

    What are your 3 favorite AIR Native Extensions albums?

    OS is irrelevant.


    So Adobe AIR should official marked as a dead language?

    R.I.P. Adobe AIR

    2011

  • native extension iOS - cannot package app

    I'm trying to integrate the SDK MixPanel as native extension of our project. I can compile the. ANE fine, but when I try to package my application I get the following error:

    Undefined symbols of armv7 architecture: utf8_nextCharSafeBody, referenced from: libPods - MixPanel.a (MPVWebSocket.o) _validate_dispatch_data_partial_string

    the library is open source, heres this file:

    mixpanel-iphone/MPWebSocket.m to master · mixpanel/mixpanel-iphone · GitHub

    The definition of this function comes from this import:

    #import < unicode/utf8.h >

    which comes from the usr/include-> unicode-> utf8.h according to XCode.

    How can I include this file? Do I need to include it at all?

    My platform.xml looks like this:

    < platform xmlns " ="http://ns.adobe.com/air/extension/15.0"" " >

    < sdkVersion >6.0< /sdkVersion>

    < linkerOptions >

    < option >- ios_version_min 6.0< /option>

    < option >- frame Accelerate< /option>

    < option >- setting CoreTelephony< /option>

    < option >- Framework security< /option>

    </ linkerOptions >

    </ platform >

    I just found what was wrong, I needed to add the unicode as a dynamic library lib to my project of LinkerOptions:

  • Using OpenCV inside a Native Extension from Adobe for IOS

    I try to use OpenCV.framework within a Native Adobe Extension that I have developed for use on an IOS app in Flex.

    The problem is that I get errors when applying for packaging:

    For architecture armv7 httpd Undefined symbols:

    "__ZNKSt3__120__vector_base_commonILb1EE20__throw_length_errorEv", referenced from:

    __ZNSt3__16vectorIiNS_9allocatorIiEEE8__appendEm in opencv2 (smooth.o)

    __ZNSt3__16vectorIN2cv6Point_IiEENS_9allocatorIS3_EEE21__push_back_slow_pathIKS3_EEvRT_ in opencv2 (hough.o)

    __ZNSt3__16vectorIN2cv3VecIiLi128EEENS_9allocatorIS3_EEE8__appendEm in opencv2 (matrix.o)

    __ZNSt3__16vectorIN2cv3VecIiLi64EEENS_9allocatorIS3_EEE8__appendEm in opencv2 (matrix.o)

    __ZNSt3__16vectorIN2cv3VecIiLi32EEENS_9allocatorIS3_EEE8__appendEm in opencv2 (matrix.o)

    __ZNSt3__16vectorIN2cv3VecIiLi16EEENS_9allocatorIS3_EEE8__appendEm in opencv2 (matrix.o)

    __ZNSt3__16vectorIN2cv3VecIiLi12EEENS_9allocatorIS3_EEE8__appendEm in opencv2 (matrix.o)

    ...

    LD: symbol not found armv7 architecture

    Compilation failed during execution: ld64

    and it's the platformoptions.xml that I use to compile the DONKEY:

    " < platform xmlns =" http://ns.Adobe.com/air/extension/4.0 ">

    < > 8.0 sdkVersion < / sdkVersion >

    < linkerOptions >

    < option > - framework opencv2 < / option >

    < option > - frame UIKit < / option >

    < option > - framework Foundation < / option >

    < option > - frame CoreGraphics < / option >

    < option > - frame Accelerate < / option >

    < option > - framework AssetsLibrary < / option >

    < option > - frame AVFoundation < / option >

    < option > - frame CoreImage < / option >

    < option > - frame CoreMedia < / option >

    < option > - frame CoreVideo < / option >

    < option > - QuartzCore framework < / option >

    < / linkerOptions >

    < / platform >

    Any idea?

    Problem solved. I added this line

    
    

    to the platformOptions.xml.

    OpenCV now works very well in my native extension of actionscript.

  • Try to use the library IOS Mixepanel in Native Extension using CocoaPods

    Hello

    I am trying to register the library of Mixpanel IOS (iOS Mixpanel API Overview) in a Native Extension and in their documentation that it suggests to install it in your IOS using CocoaPods project. When I do that, CocoaPods creates a library file (libPods.a) that says that Xcode "is not a file object and cannot be included in a library project.

    Thus, there is a library file which cannot be included in a library project, if I understand correctly.

    Is it possible to create a DONKEY component IOS is not a library project? Or is it possible to use the file platformoptions.xml to include this additional library file? How to set the path to this file so it is?

    -Steve Warren

    Try this. Add the following in the platformoptions xml file:

    libPods.a

    Add libPods.a to the adt command, so it is included in the donkey as well as the other file to the library.

  • Problems of deployment of native extensions on Android

    I'm currently testing a native extension on Android, but I get the following error when you try to build and push the device:

    "A strategy for native extension"extension name"required by the application is not found for the target platform."

    I thought that I had screwed up creating my extension somehow so I tried to use other and it doesn't matter what extension I try, I still get the same error. Has anyone else encountered this problem? If so, how to solve it?

    Thank you.

    If anyone runs into this problem using FlashDevelop, follow the steps detailed here: https://plus.google.com/u/0/109524935899218597554/posts/7rhFEX7S372

    That he solved it for me. Woohoo!

Maybe you are looking for

  • Epson Stylus 845Printer problem

    I use a newer iMac (retina 5K, 27-inch, Late 2014,4 GHz Intel Core i7).  I've just updated to OS X El Capitan Version 10.11.6. I installed the latest OS X update a few days ago.  Now, I have a problem with my printer (Epson WorkForce 845) connected w

  • LifeCam do not display video

    LifeCam appear not video - it says no camera not attached - works sound ok - hp a320n system - mem 1 G - 2 processor g - audio test on Skype works - no video - have replaced the camera with a good known from other systems - not really happy - camera

  • When I plug my blackberry phone to my computer dell laptop it dosent conect

    When I plug my blackberry phone to my computer dell laptop it dosent conect him what my problem

  • Windows 7 reinstall "invalid product key".

    I recently started a computer fixing for someone, they got three Dell Optiplex 755 desktop computers, and I got a few pieces of each of them (hard drive, processor, ram cards). I got the computer to boot, but since it's so old and I don't know what i

  • Adobe acrobat installation access denied

    HelloI am using windows 7 Home premium. I downloaded Adobe acrobat 10, XI and DC version on my computer version. Tried to install each of them one by one, but each time that windows Setup gives me "access denied" error.I used both cleaning tools. Hav