[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Port of Emacs client / server programs to Windows NT

From: Neil Roberts
Subject: Port of Emacs client / server programs to Windows NT
Date: Sat, 28 Oct 2006 10:06:05 +0100
User-agent: Mutt/1.5.11


I've made a native port of the emacsclient and emacsserver programs
for Windows that uses named pipes instead of sockets. The programs are
drop-in replacements and should work if you just copy the exe files
into the bin/ folder of an Emacs 21 install.

The advantages of using named pipes instead of TCP are:

- The SID of the current user forms part of the name of the pipe so if
  you use your Windows in a multi-user environment then running
  multiple instances of the server won't collide with each other. The
  client will always connect to the server that was started by the
  same user.

- The access control list is set for the pipe so that only the current
  user can connect to it. Thus there is no security risk that another
  user will mess with your Emacs session, or even worse a remote
  user. There doesn't need to be any complicated authentication
  mechanisms because the authentication built in to Windows is used.

- It won't pop up a warning whining that the emacsserver is opening a
  port on systems that are running the Windows firewall.

- It doesn't require Winsock.

- It is much more like the original Unix implementation of the server.

Unfortunatly when I started writing it, I didn't realise that the
latest CVS no longer runs emacsserver as a separate process so it
won't work after Emacs 22 is released. Would it be worth making the
code in server.el resort back to running a separate process if the
:local sockets are not supported? Or maybe Emacs could be made to use
named pipes instead of sockets if a :local socket is created on
Windows as they seem to be the Windows equivalent of Unix domain

If anyone is interested, the programs can be downloaded from here:


- Neil

reply via email to

[Prev in Thread] Current Thread [Next in Thread]