DCC File Transfer Information


Direct Client-to-Client (DCC) is an extension of IRC that allows for files to be transferred between users.

How does it work?

DCC works by establishing a direct connection between the person sending the file and the person receiving it.

When you send a file, a transfer request is sent to the recipient. This transfer request contains the name of the file, its size, your IP address, and a port. If the recipient agrees to the transfer request, then their client opens a new connection to the IP address and port. The contents of file is then transferred.

How do I accept a file sent to me?

When a transfer request is received, it is placed within the File Transfers window.

This window can be brought forward by navigating to the main menu in the top left corner of the screen, opening the Window menu, and clicking the menu item labeled File Transfers.

Right click (control click) one or more items in this window. A menu is presented by doing so which contains different actions which can be performed on each transfer request.

For visual reference, the File Transfers window appears similar to the following:

image 1

Are there any technical limitations?

When sending a file, the recipient of the file will have difficulties receiving it if you are on a wireless network.

The recipient must establish a connection to you as the sender and to do so, they must connect to your Mac. However, being connected to a wireless network means that your Mac is not directly facing the Internet.

For a connection to be successfully established, something known as port forwarding is required.

When you send a file, Textual attempts automatic port forwarding using UPnP and NAT-PMP. However, this does not always succeed due to limitation in hardware or misconfiguration.

How do I send a file?

There are two ways to send a file through Textual:

The first way is to right click (control click) a nickname in the user list, then navigate to the Client-to-Client submenu.

The second way is to drag and drop a file onto a user in the user list.

Are file transfers secure?

File transfers are not secure. The contents of each file is transferred in plain text.

I am using IPv6 - Can I use DCC?

Textual supports sending and receiving files using native IPv6. Other apps may not support native IPv6. There is no way to know whether another app can receive files from you using native IPv6 until you try to send one.

Textual only provides support for native IPv6. IPv6 tunnels are not supported due to networking difficulties.

I received an error. What does it mean?

The following are common errors that can be encountered during a file transfer:

Transfer with [user] failed. There is no open port.

This error occurs when Textual tries to send a file but was unable to find a port which was open for listening.

Transfer with [user] failed. Could not read source file.

This error occurs because Textual tried to access a file which may no longer exist or has inappropriate file permissions.

Transfer with [user] failed. Unknown source IP address.

This error occurs when trying to send a file when the IP address of the sending machine is not available. By default, Textual tries to request the value of your IP address from an external source. However, sometimes this may fail. Restarting Textual may resolve this issue. If it does not, an IP address may need to be manually entered in Preferences.

Transfer with [user] failed. Connection was disconnected.

This is a general error that can occur for multiple reasons. If this error occurs during a file transfer, then the sender may have cancelled the transfer or there was a slight Internet hiccup that could not be recovered from.

Transfer with [user] failed. Could not establish connection.

This error occurs when a connection cannot be established to the user sending a file. This is likely due to their Mac being behind a firewall or wireless network which is not forwarded properly.

Last modified: August 01, 2017
The contents of this webpage are released into the Public Domain for unlimited distribution.