Question: When I use

```
local socket = require("socket.core")

```

It works fine, the dll is located at "dir/socket/core.dll" but when I move the dll to say

"dir/folder/core.dll" and use

```
local socket = require("folder.core.")

```

It returns that it was found however it could not find the specific module in folder.core.

How do I use Luasocket outside of it's socket.core requirements?

Thanks!

Answer: 
If you want to `require("socket.core")`, the shared library (dll) has to have an exported function called luaopen\_socket\_core (which the LuaSocket library has). Thus, it always needs to be called as `require("socket.core")`.

If you want to move the DLL into some other folder, you have to modify [`package.cpath`](http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath), which contains the file patterns which will be checked.

Let's say that you want to move the LuaSocket binary to `folder`. You have to place the binary in `folder/socket/core.dll` and modify `package.cpath` prior to calling `require`:

```
package.cpath = package.cpath .. ';folder/?.dll'
local socket = require('socket.core')

```

`?` represents the name passed to `require` translated to file paths: `. -> /`, i.e. `socket.core -> socket/core`.
I think you just need to remove the dot at the end.

```
local socket = require("folder.core")

```