Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TCP服务器,其他可以';t仅连接本地主机或我的本地IP_Python_Sockets - Fatal编程技术网

Python TCP服务器,其他可以';t仅连接本地主机或我的本地IP

Python TCP服务器,其他可以';t仅连接本地主机或我的本地IP,python,sockets,Python,Sockets,我的服务器TCP代码: import socket import sys HOST = '' PORT = 8031 s = socket.socket() class BoServer: def __init__(self): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error,msg: pri

我的服务器TCP代码:

import socket
import sys

HOST = ''
PORT = 8031
s = socket.socket()

class BoServer:


    def __init__(self):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        except socket.error,msg:
            print "Unable to create socket"
            sys.exit()
        print "Socket created."
    def bind(self):
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        try:
            s.bind((HOST,PORT))
        except socket.error,msg:
            print "Bind failed. Closing..."
            sys.exit()
        print "Socket bound."
    def run(self):
         s.listen(10)
         print "Socket Listening"
         conn, addr = s.accept()
         print "Connected to %s:%s"%(addr[0],addr[1])
         while True:
            income = conn.recv(4096)
            if income != "":
                print income

def main():
    serv = BoServer()
    serv.bind()
    serv.run()

if __name__ == "__main__":
    main()
import socket
import sys


def main():
    host = ""
    port = 8031
    message = "Hello World!"

    host = raw_input("Enter IP: ")
    #Create Socket
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error, msg:
        print "Failed to create socket. Error code: %s Error Message: %s"%(str(msg[0]),msg[1])
        sys.exit()
    print "Socket created"

    #Connect to server
    s.connect((host,port))

    while message != "/e":
        #Send Data
        message = raw_input("Send >> ")
        try:
            s.sendall(message)
        except socket.error, msg:
            print "ERROR %s"%(msg[1])
            print "Failed to send."
    s.close()

main()
我的客户端TCP代码:

import socket
import sys

HOST = ''
PORT = 8031
s = socket.socket()

class BoServer:


    def __init__(self):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        except socket.error,msg:
            print "Unable to create socket"
            sys.exit()
        print "Socket created."
    def bind(self):
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        try:
            s.bind((HOST,PORT))
        except socket.error,msg:
            print "Bind failed. Closing..."
            sys.exit()
        print "Socket bound."
    def run(self):
         s.listen(10)
         print "Socket Listening"
         conn, addr = s.accept()
         print "Connected to %s:%s"%(addr[0],addr[1])
         while True:
            income = conn.recv(4096)
            if income != "":
                print income

def main():
    serv = BoServer()
    serv.bind()
    serv.run()

if __name__ == "__main__":
    main()
import socket
import sys


def main():
    host = ""
    port = 8031
    message = "Hello World!"

    host = raw_input("Enter IP: ")
    #Create Socket
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error, msg:
        print "Failed to create socket. Error code: %s Error Message: %s"%(str(msg[0]),msg[1])
        sys.exit()
    print "Socket created"

    #Connect to server
    s.connect((host,port))

    while message != "/e":
        #Send Data
        message = raw_input("Send >> ")
        try:
            s.sendall(message)
        except socket.error, msg:
            print "ERROR %s"%(msg[1])
            print "Failed to send."
    s.close()

main()
我希望人们在客户机上编写我的公共ip xxx.xxx.xxx.xx,并在服务器上连接

当我运行服务器时,其他人无法连接到我的服务器。我只能使用本地主机或本地IP访问服务器

尝试连接的每个人都会收到此错误:

Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time.

我做错了什么?

你在路由器后面吗?您是否为端口8031启用了端口转发?是的,已经转发了端口TCP-8031,并且禁用了防火墙。您是如何转发端口的?你确定他们正在输入你的公共IP吗?代码对我来说很简单,应该可以工作,所以它必须是一个配置问题。我试过你的代码,它在远程计算机上工作。我认为Thomas是对的,这是一个配置问题。似乎只有我一个人,那一定是我的调制解调器/路由器。谢谢你的帮助!