Fjärrskrivbord Windows 10 Home



Just like going from Windows 7 Home Premium to Windows 7 Professional or Windows 8.1 to Windows 8.1 Pro, there will be a feature incentive to go from Windows 10 Home to Windows 10 Pro. Although Windows 10 Home users can tweak this settings, their PCs don’t support incoming RDP connections. In layman’s terms, you won’t be able to connect your PC remotely but the opposite is. How to connect to a remote desktop in Windows 10 Home. Consider one of the most useful but rarely used features in the operating system. The essence of their work is one: the ability to control someone else's computer with their own controls.

Product-->

WebSockets provide a mechanism for fast, secure, two-way communication between a client and a server over the web using HTTP(S), and supporting both UTF-8 and binary messages.

Under the WebSocket Protocol, data is transferred immediately over a full-duplex single socket connection, allowing messages to be sent and received from both endpoints in real time. WebSockets are ideal for use in multiplayer gaming (both real-time and turn-based), instant social network notifications, up-to-date displays of stock or weather information, and other apps requiring secure and fast data transfer.

To establish a WebSocket connection, a specific, HTTP-based handshake is exchanged between the client and the server. If successful, the application-layer protocol is 'upgraded' from HTTP to WebSockets, using the previously established TCP connection. Once this occurs, HTTP is completely out of the picture; data can be sent or received using the WebSocket protocol by both endpoints, until the WebSocket connection is closed.

Note A client cannot use WebSockets to transfer data unless the server also uses the WebSocket protocol. If the server does not support WebSockets, then you must use another method of data transfer.

The Universal Windows Platform (UWP) provides support for both client and server use of WebSockets. The Windows.Networking.Sockets namespace defines two WebSocket classes for use by clients—MessageWebSocket, and StreamWebSocket. Here's a comparison of these two WebSocket classes.

MessageWebSocketStreamWebSocket
An entire WebSocket message is read/written in a single operation.Sections of a message can be read with each read operation.
Suitable when messages are not very large.Suitable when very large files (such as photos or videos) are being transferred.
Supports both UTF-8 and binary messages.Supports only binary messages.
Similar to a UDP or datagram socket (in the sense of being intended for frequent, small messages), but with TCP's reliability, packet order guarantees, and congestion control.Similar to a TCP or stream socket.

Secure your connection with TLS/SSL

In most cases, you'll want to use a secure WebSocket connection so that the data you send and receive is encrypted. This will also increase the chances that your connection will succeed, because many intermediaries such as firewalls and proxies reject unencrypted WebSocket connections. The WebSocket protocol defines these two URI schemes.

URI schemePurpose
wss:Use for secure connections that should be encrypted.
ws:Use for unencrypted connections.

To encrypt your WebSocket connection, use the wss: URI scheme. Here's an example.

Use MessageWebSocket to connect

MessageWebSocket allows an entire WebSocket message to be read/written in a single operation. Consequently, it's suitable when messages are not very large. The class supports both UTF-8 and binary messages.

The example code below uses the WebSocket.org echo server—a service that echoes back to the sender any message sent to it.

Handle the MessageWebSocket.MessageReceived and MessageWebSocket.Closed events

As shown in the example above, before establishing a connection and sending data with a MessageWebSocket, you should subscribe to the MessageWebSocket.MessageReceived and MessageWebSocket.Closed events.

MessageReceived is raised when data is received. The data can be accessed via MessageWebSocketMessageReceivedEventArgs. Closed is raised when the client or the server closes the socket.

Send data on a MessageWebSocket

Once a connection is established, you can send data to the server. You do this by using the MessageWebSocket.OutputStream property, and a DataWriter, to write the data.

Note The DataWriter takes ownership of the output stream. When the DataWriter goes out of scope, if the output stream is attached to it, the DataWriter deallocates the output stream. After that, subsequent attempts to use the output stream fail with an HRESULT value of 0x80000013. But you can call DataWriter.DetachStream to detach the output stream from the DataWriter and return ownership of the stream to the MessageWebSocket.

Use StreamWebSocket to connect

StreamWebSocket allows sections of a message to be read with each read operation. Consequently, it's suitable when very large files (such as photos or videos) are being transferred. The class supports only binary messages.

The example code below uses the WebSocket.org echo server—a service that echoes back to the sender any message sent to it.

Handle the StreamWebSocket.Closed event

Before establishing a connection and sending data with a StreamWebSocket, you should subscribe to the StreamWebSocket.Closed event. Closed is raised when the client or the server closes the socket.

Send data on a StreamWebSocket

Once a connection is established, you can send data to the server. You do this by using the StreamWebSocket.OutputStream property, and a DataWriter, to write the data.

Note If you want to write more data on the same socket, then be sure to call DataWriter.DetachStream to detach the output stream from the DataWriter before the DataWriter goes out of scope. This returns ownership of the stream to the MessageWebSocket.

Receive data on a StreamWebSocket

Use the StreamWebSocket.InputStream property, and a DataReader, to read the data.

Advanced options for MessageWebSocket and StreamWebSocket

Before establishing a connection, you can set advanced options on a socket by setting properties on either MessageWebSocketControl or StreamWebSocketControl. You access an instance of those classes from the socket object itself either via its MessageWebSocket.Control property or its StreamWebSocket.Control property, as appropriate.

Here's an example using StreamWebSocket. The same pattern applies to MessageWebSocket.

Note Don't try to change a control property after you've called ConnectAsync. The only exception to that rule is MessageWebSocketControl.MessageType.

WebSocket information classes

MessageWebSocket and StreamWebSocket each have a corresponding class that provides additional information about the object.

MessageWebSocketInformation provides information about a MessageWebSocket, and you retrieve an instance of it using the MessageWebSocket.Information property.

StreamWebSocketInformation provides information about a StreamWebSocket, and you retrieve an instance of it using the StreamWebSocket.Information property.

Note that the properties on these information classes are read-only, but you can use them to retrieve information at any time during the lifetime of a web socket object.

Handling exceptions

An error encountered on a MessageWebSocket or StreamWebSocket operation is returned as an HRESULT value. You can pass that HRESULT value to the WebSocketError.GetStatus method to convert it into a WebErrorStatus enumeration value.

Most WebErrorStatus enumeration values correspond to an error returned by the native HTTP client operation. Your app can switch on WebErrorStatus enumeration values to modify app behavior depending on the cause of the exception.

For parameter validation errors, you can use the HRESULT from the exception to learn more detailed information about the error. Possible HRESULT values are listed in Winerror.h, which can be found in your SDK installation (for example, in the folder C:Program Files (x86)Windows Kits10Include<VERSION>shared). For most parameter validation errors, the HRESULT returned is E_INVALIDARG.

Setting timeouts on WebSocket operations

MessageWebSocket and StreamWebSocket use an internal system service to send WebSocket client requests, and to receive responses from a server. The default timeout value used for a WebSocket connect operation is 60 seconds. If the HTTP server that supports WebSockets doesn't or can't respond to the WebSocket connection request (it's temporarily down, or blocked by a network outage), then the internal system service waits the default 60 seconds before it returns an error. That error causes an exception to be thrown on the WebSocket ConnectAsync method. For send and receive operations after a WebSocket connection has been established, the default timeout is 30 seconds.

Windows 10 Home Vs Pro

If the name query for an HTTP server name in the URI returns multiple IP addresses for the name, then the internal system service tries up to 5 IP addresses for the site (each with a default timeout of 60 seconds) before it fails. Consequently, your app could wait several minutes trying to connect to multiple IP addresses before it handles an exception. This behavior might appear to the user like the app has stopped working.

To make your app more responsive and minimize these issues, you can set a shorter timeout on connection requests. You set a timeout in a similar way for both MessageWebSocket and StreamWebSocket.

Important APIs

Related topics

Samples

Accessing your PC remotely is a thing that every tech geek knows. We have covered this area in the past many times for various platforms. But with a major change in an OS, Windows 10 this time, it requires a refresh. So let’s see what has changed (or not) in Windows 10.

The Basics: Enable Remote Desktop

By default, remote desktop is turned off for security reasons. To enable it, go to Control Panel -> System and Security, under the System heading click on Allow Remote access. In the window now opened, tick the Allow Remote Assistance connections to this computer checkbox and the Allow remote connections to this computer checkbox as well.

Although Windows 10 Home users can tweak this settings, their PCs don’t support incoming RDP connections. In layman’s terms, you won’t be able to connect your PC remotely but the opposite is true.

If you want to set up unattended access you will also need to configure Power Options. Go to Control Panel -> Hardware & Sound -> Power Options. Click on Change plan settings next to your selected plan. In that change Put the computer to sleep to Never. For users who are multi-booting, ensure that your PC boots to Windows by default in case it restarts.

Connecting to a PC

To connect to a remote PC, just search for Remote Desktop app. It’s same as in Windows 8, enter the IP address or domain name of the PC you want to connect and hit connect. There are more advanced options available, to view them click on Show Options.

If you often connect to multiple PCs, you can also save their customized settings in a RDP file. After entering the IP address or domain name, just hit Connect to start the session. If you get errors regarding PC not available, go through the Troubleshooting section at the end of the post.

New Remote Desktop Preview App

Apart from the usual RD app, there is one other app for Remote Desktop, optimized for tablet/touch screen. The Remote Desktop preview app can be installed from here. It borrows some design cues from the RDP apps for Android and iOS. All the things are same as above except for the UI design.

If you want to access your PC from outside your Home network, you will need its external IP address or assign a domain name to it. Go through our previous guide to know how.

Did you know:

What Does Windows 10 Home Include

If you are using Microsoft’s RDP app for Android or iOS, it supports most of the new gestures that are available in Windows 10.Fjärrskrivbord Windows 10 HomeHome

Troubleshooting Remote Desktop

If you are having trouble using the Remote Desktop, you can try some of the few things below. The most common error encountered is remote PC not found.

Check if Remote Desktop is allowed in Firewall. Go to Control Panel -> System and Security and under the Windows Firewall heading click on Allow an app through Windows Firewall. In the subsequent window, under the Allowed appsand features section, see if Remote Desktop is enabled.

If it’s not, click on the Change settings button first, then on Allow another app… at the bottom and tick the box for Remote Desktop and Remote Assistance under the Private column. Windows 10 Home users will not have these options available to them.

Also check if you have an anti-virus which has built in firewall. In such a case the anti-virus’ private firewall may be blocking Remote Desktop.

Check if the port 3389 is open and forwarded. If you are behind a router, go to this site and see how to configure port triggering for you router.

Windows 10 Home Product Key

Check if you have Windows 10 Pro or Home. This may be common sense but I have seen cases where people have refreshed their PCs only to realize later that they have Windows Home edition running.

If you are facing frequent disconnections or session is lagging and slow, try lowering the screen resolution of the remote desktop you are accessing. You can find this setting by going to the Display tab on the RDP app.

Alternatives

If you don’t like the default RDP app, there are some great alternatives that you can try. Windows 10 Home users will have to rely on these only if they want to access their PCs remotely. I use Team Viewer because it’s simple and gets the job done without any complications. You don’t have to fiddle with network settings, display resolutions etc. Another app is Splashtop Remote Desktop, which has more features and options then Team Viewer, however many of its features are only available in the paid version.

That’s it folks. Covering everything under Remote desktop is out of the scope of this article, but this should be enough for most users. Any other apps that you use for Remote Desktop? Or facing any problem while using the same? Drop in at our discussion forums and we will try our best to help you out.


The above article may contain affiliate links which help support Guiding Tech. However, it does not affect our editorial integrity. The content remains unbiased and authentic.

Read Next

Fjärrskrivbord

7 TeamViewer Alternatives for Remote PC Control and Access

TeamViewer alternatives offer you features, pricing, endpoint technology, adaptability, and more reasons to consider other