HTTP Websockets client library in C++ for Windows CE/Mobile - c++

I am looking for a C/C++ based http/websocket library with SSL(HTTPS/wss) support on Windows CE/Mobile that uses Windows SChannel (rather than OpenSSL). I ported over the wslay library so that I could use it with libcurl. This is turning out to be difficult to integrate. Is anyone aware of a library that I can use on Windows CE/Mobile platforms that's not dependent on OpenSSL?

I found POCO but that seemed to have OpenSSL dependencies. So in turn ended up porting wslay to Windows CE and filled in the necessary callbacks with libcurl's curl_easy_send and curl_easy_receive functions for IO. Wslay doesn't have an implemented IO layer and gives the user the choice to use the appropriate IO library needed. Libcurl doss come with SChannel support that made things even more easier for using secure WebSocket over wslay.

Related

Needed info for libcurl, cross-platform

I want to implement an auto-update or update notification method for my open-source project. My searches often lead me to libcurl.
I search much about HTTP-libs - and many times I ended up with libcurl ... but can I use it for Linux and Windows together?
My wish is to include only header-files (same header for Linux & WIndows, if possible) and add only OS-spefic lib flags with cmake or visual-studio project files. That way, I can compile the same code on both platforms.
Is that possible in general with libcurl? If yes, how do I do that directly?
Yes you can.
An application can use libcurl on both Linux and Windows with the source code parts that do the HTTP transfers being identical. libcurl provides the same API and it works the same on a vast amount of different operating systems.

zlib for WinRT?

I require zlib library for the development of Windows Store app.
Has anyone converted Win32 zlib project to WinRT yet?
Can anyone please describe the steps to convert the existing win32 static lib project to winRT?
Visual C++ is already a supported language for WinRT development, if you wan't to use zlib, just compile it together with your solution. There is nothing that is preventing you from reusing standard ISO C and C++ libraries from within the WinRT, if you are using the C++ language, you might have to expose certain aspects of your library as WinRT Components but only if you need to interface with facilities like XAML or other WinRT languages but that should be a walk in the park. Not something which is tremendously difficult to do.
The whole point of supporting C++ in the WinRT is to allow an existing ecosystem of largely native applications to be ported to the Windows Store. zlib is not an exception. Non-standard ISO C and C++ such as sockets are not supported but there you have alternatives that you can plug-in to, just check that the library you're using has some kind of portability support.
WinRT is very limited with regards to C library functions which are present. What this means is that virtually all cross-platform C libraries are (AFAIK, I'm not a WinRT dev) unusable for that target.
For the case of zlib, there is an alternative: see this question
EDIT: to clarify what I'm saying above, I dug up a list of all CRT functions that are absent for WinRT, which you can find here. As long as zlib or any other C library does not depend on these function calls, you should be able to use the WinRT tools to build that C library. I even found a project file for zlib on winrt by the Ogre team here, not sure how useful it is to you.
You could take a look into this WinRT (Un)Zip component. Its used in production code already.
See the unit tests inside on how to use the component. It compiles on all WinRT architectures including ARM. It has no custom asm for ARM though.

Com port library in C or C++

i need to manage a COM printer port by Tomcat webserver. I tried a lot of java solutions, for example RxTx library but i had a lot of troubles: when i switch off the printer the jvm crashed!!
Now i would like to use an jvm external library linked by JNA, so i need a C or C++ library with raw methods to read and write to a COM port. This library should be compile under windows or linux. Can I find somethings already done? (I can not write programs in C or C++).
Thank you.
Use Boost Asio!
Its guaranteed to be fully portable. Its also very reliable. I've actually used it in my own application (SMS sender through gsm devices using AT commands).
Please also see: Access the serial port in a platform-independant way
Try another one library: http://code.google.com/p/qextserialport/
This project targeted for Qt users.
Supports Qt4 and Qt5 both!
In case you're looking for something lightweight with no additional dependencies, I'd like to plug my own library https://github.com/nullpunktTUD/SerialPort
It is fully cross-platform and supports enumeration.

Is there a C or C++ embeddable library for reading email through pop?

I'm looking for a not too big C or C++ library that would allow to read email through pop on Windows. The smallest the better. It would be better if it could support SSL.
There is also this CPJNOPO3Connection which supports ssl.
I have not used this library but the SMTP one with great success both on Windows and Windows CE
Chilkat has a bunch of libraries here that are pretty good, lots of options.

Best C/C++ Network Library

This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
I haven't done work in C/C++ for a little bit and was just wondering what people's favorite cross platform libraries are to use.
I'm looking for something that is a good quick and dirty library as well as a library that is a little more robust. Often those are two different libraries and that's okay.
Aggregated List of Libraries
Boost.Asio is really good.
Asio is also available as a stand-alone library.
ACE is also good, a bit more mature and has a couple of books to support it.
C++ Network Library
POCO
Qt
Raknet
ZeroMQ (C++)
nanomsg (C Library)
nng (C Library)
Berkeley Sockets
libevent
Apache APR
yield
Winsock2(Windows only)
wvstreams
zeroc
libcurl
libuv (Cross-platform C library)
SFML's Network Module
C++ Rest SDK (Casablanca)
RCF
Restbed (HTTP Asynchronous Framework)
SedNL
SDL_net
OpenSplice|DDS
facil.io (C, with optional HTTP and Websockets, Linux / BSD / macOS)
GLib Networking
grpc from Google
GameNetworkingSockets from Valve
CYSockets To do easy things in the easiest way
yojimbo
GGPO
ENet
SLikeNet is a fork of Raknet
netcode
photon is closed source, requires license to use their sdk
crossplatform network - open source non blocking metatemplate framework built on top of boost asio