Python论坛  - 讨论区

标题:[python-chinese] 关于Solaris下发送多播包的疑问

2005年11月29日 星期二 11:35

Gavin Chan 321tseug at gmail.com
Tue Nov 29 11:35:15 HKT 2005

在window下
  ....
  mcast_ip = '224.0.0.33'
  port = 5333
  data = struct.pack('!IIII', 0, 0, 0, 0)
  s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  s.bind((local_ip, port))
  s.sendto(data, 0, (mcast_ip, port))
  mreq = socket.inet_aton(mcast_ip) + socket.inet_aton(local_ip)
  s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
  s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_LOOP, 0);
  s.settimeout(timeout)

可以正常运行

在solaris下:
  if ( os.name == 'posix' ):
    print 'Unix System Socket'
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #s.bind((local_ip, port)) #这句报错,察看帮助,Unixt下的Python不支持 绑定 port
    s.sendto(data,0,(mcast_ip,port))
    mreq = socket.inet_aton(mcast_ip) + socket.inet_aton(local_ip)
    s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    #s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_LOOP, 0)   #这句报错
  else:
    。。。
  s.settimeout(timeout)

察看帮助 http://docs.python.org/lib/socket-objects.html

 *setsockopt*( level, optname, value) Set the value of the given socket
option (see the Unix manual page *setsockopt*(2)). The needed symbolic
constants are defined in the socket module (SO_* etc.). The value can be an
integer or a string representing a buffer. In the latter case it is up to
the caller to ensure that the string contains the proper bits (see the
optional built-in module
struct<http://docs.python.org/lib/module-struct.html>for a way to
encode C structures as strings).

一直没有找到 这个 Unix manual page ,有谁知道在哪可以察看, 或者有谁有 在Unix下使用python发送多播包的经验?
thanks~~~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051129/cf7e1394/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号