关于Python的socket无法建立连接解决办法

关于Python的socket无法建立连接
我在看programming python的时候,看了socket部分,然后编了个简单的客户端服务端程序。

例子是书上的例子,运行起来也成功了。

但是当我想让远程的机器连接我主机的时候,却总是失败。(我让我女朋友用她的电脑执行客户端脚本连接我的机器,失败;但是我用自己的机器运行客户端脚本,则成功;IP用的是我的外网IP)

代码如下:
服务端
from socket import *          # get socket constructor and constants
myHost=''                     # ''=all available interfaces on host
myPort=50007                  # listen on a non-reserved port number

sockobj=socket(AF_INET, SOCK_STREAM)     # make a TCP socket object
sockobj.bind((myHost, myPort))             # bind it to server port number
sockobj.listen(5)                        # listen, allow 5 pending connects

while True:                              # listen until process killed
    connection, address=sockobj.accept() # wait for next client connect
    print('Server connected by', address)# connection is a new socket
    while True:
        data=connection.recv(1024)       # read next line on client socket
        if not data: break               # send a reply line to the client
        connection.send(b'Echo=>'+data)  # until eof when socket closed
    connection.close()

客户端
import sys
from socket import *                            # portable socket interface plus constants
serverHost="X.X.X.X"                          # 这里我用我自己的外网IP替换了,并让我女朋友从远程执行代码
serverPort=50007                               # non-reserved port used by the server

message=[b'Hello network world']                      # default text to send to server

if len(sys.argv) > 1:
    serverHost=sys.argv[1]                            # server from cmd line arg 1
    if len(sys.argv) > 2:                             # text from cmd line args 2..n
        message=(x.encode() for x in sys.argv[2:])

sockobj=socket(AF_INET, SOCK_STREAM)                  # make a TCP/IP socket object
sockobj.connect((serverHost, serverPort))             # connect to server machine + port

for line in message:
    sockobj.send(line)                                # send line to server over socket
    data=sockobj.recv(1024)                           # receive line from server: up to 1k
    print('Client received: ',data)                   # bytes are quoted, was 'x', repr(x)

print('success')
sockobj.close() 


结果就是,服务端这边错误信息:
Server connected by ('66.175.219.136', 2073)
Traceback (most recent call last):
  File "C:\Users\asus\Desktop\echo-server.py", line 23, in <module>
    data=connection.recv(1024)       # read next line on client socket