diff --git a/libavformat/tcp.c b/libavformat/tcp.c
index e249e4e8302263a1d4f456a5215395091f7d84b2..a6eeeb0d0f5137c45e8e1082382ad9bd55e6f6ed 100644
--- a/libavformat/tcp.c
+++ b/libavformat/tcp.c
@@ -83,6 +83,8 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
 
     if (listen_socket) {
         int fd1;
+        int reuse = 1;
+        setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
         ret = bind(fd, cur_ai->ai_addr, cur_ai->ai_addrlen);
         if (ret) {
             ret = ff_neterrno();