错误 - 未定义全局名称'SOL_SOCKET

 可乐加冰2502937787 发布于 2023-01-19 19:49

我正在尝试创建一个使用p2p(点对点)连接的基本即时消息程序,因此它不需要服务器.我很确定没有错,但每次运行我创建的客户端程序时,都会收到此错误:s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)NameError:全局名称'SOL_SOCKET'未定义以下是程序:

import socket

def Receiver():

    # Create socket that supports IPv4, TCP Protocol
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print "Socket created."
    # Requests for IP of host (DNS)
    dns = "localhost"
    HOST = ''
    PORT = 25395
    try:

        s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    except socket.error as serror:
        print "socket error"
    s.bind((HOST, PORT)) # Listens on all interfaces...
    print 'Listening on port 25565'
    s.listen(True) # Listen on the newly created socket... 
    conn, addr = s.accept()
    print 'Connected in port 25565'
    data = conn.recv(1024)
    print data
    s.close()
def Sender():

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    dns = "localhost"
    HOST = socket.gethostbyname(dns)
    port = 25565    
    # Connect to server
    s.connect((host,port))

    print "Socket connected to " + dns + " on IP " + host

    # Assign message to be sent to server to a variable
    message = raw_input("Message to be sent to server: ")

    #Send the actual message to server
    s.sendall(message)
    print "Message sent successfully"
    s.close()


input = raw_input('S is send, R is receive: ')
if input == 's':
    Sender()
if input == 'r':
    Receiver()

我已经尝试删除s.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)但它告诉我,当没有2个套接字使用相同的端口时,我不能在同一端口上使用2个套接字.

1 个回答
  • 在你的代码中:

     s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    

    喜欢:

     s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
      #            ^^^^ added         ^^^
    

    因为您刚刚导入socket,请检查以下代码:

    >>> import socket
    >>> SOL_SOCKET
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'SOL_SOCKET' is not defined
    >>> socket.SOL_SOCKET
    1
    

    2023-01-19 19:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有