无法在python中使用setsockopt连接

2024-10-16 11:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手。所以这个问题看起来很傻。在

我想用python为客户机和服务器实现一个简单的程序。在

在服务器.py是

import socket
#s = socket.socket()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, 25, "wlan0"+'\0')
host = socket.gethostname()
port = 12345
s.bind((host,port))
s.listen(5)
while True:
    c,addr = s.accept()
    print "Got connection from",addr
    c.send("Thank you for connecting")
    c.close()

在客户端.py是

^{pr2}$

问题是编译器显示错误“不允许操作”。我尝试以根用户身份执行程序。错误已消失,但未建立客户端和服务器连接。在

在添加这行之前一切都很好

   s.setsockopt(socket.SOL_SOCKET, 25, "wlan0"+'\0')

希望有人能回答我的问题。 我想通过wlan0接口连接客户端和服务器。在

谢谢。在


Tags: py程序服务器host客户端客户机port错误
1条回答
网友
1楼 · 发布于 2024-10-16 11:21:18

服务器副本:

import socket
import fcntl
import struct
#s = socket.socket()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)




def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

host = get_ip_address("eth0")#replace with "wlan0"
port = 12345
s.bind((host,port))
s.listen(5)
while True:
    c,addr = s.accept()
    print "Got connection from",addr
    c.send("Thank you for connecting")
    c.close()

客户PY:

^{pr2}$

check this警告:服务器py在shell上运行(“python服务器.py)和客户端在空闲状态下运行。在

相关问题 更多 >