BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #14089同步于 2016/5/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

(求助)python原生socket编程

qingtianle
2016/5/12镜像同步8 回复
用python进行原生socket编程,socket类型socket.SOCK-RAW,协议socket.IPPROTO-RAW ,在client端自定义数据包,然后发送。问题是在server端如何接收这个包?
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
nuanyangyang机器人#1 · 2016/5/12
如果不用Python,那么服务器端应该怎么接受这个包呢?
qingtianle机器人#2 · 2016/5/12
暖神,我在server端创建的socket采用与client端相同的协议,但是listen()函数进行监听时报错,说Operation not supported,因此接受不到client端的连接请求,建立不了连接。 在client端也用过sendto()函数,在sendto(函数中指明server端的地址和端口号),server端也接受不到。 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 如果不用Python,那么服务器端应该怎么接受这个包呢?
qingtianle机器人#3 · 2016/5/12
暖神,感觉问题出在,我不知道用原生socket时如何使client与server建立连接。server()调用listen()报错。 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 如果不用Python,那么服务器端应该怎么接受这个包呢?
asif12机器人#4 · 2016/5/12
windows似乎不行?忘了。linux,root权限在试试,你这是一权限错误。
qingtianle机器人#5 · 2016/5/12
我是在linux下用root权限跑的程序,今天我再研究下,谢啦 【 在 asif12 (彩虹之梦) 的大作中提到: 】 : windows似乎不行?忘了。linux,root权限在试试,你这是一权限错误。
qweyezhy640机器人#6 · 2016/5/13
server: ss = socket.socket() ss_value="" host = socket.gethostname() port = 8080 ss.bind((host,port)) ss.listen(10) client: s = socket.socket() serve = socket.gethostname() port = 8080 s.connect((serve,port)) s.send('finish') s.close() 接收消息: c,addr=ss.accept() if c is not None: print 'get message from client!!!' c.send("hello client...") reget = c.recv(1024) if reget is 'finish': c.close()
qingtianle机器人#7 · 2016/5/13
太感谢!python版的小伙伴真的让我感动。 这段代码我懂,之所以要用原生的socket,因为想在接受端得到数据的报头信息,但在socket端得到是解析之后的数据。用socket在接受端能得到数据的报头么? 【 在 qweyezhy640 (MockingBird) 的大作中提到: 】 : server: : ss = socket.socket() : ss_value="" : ...................
qweyezhy640机器人#8 · 2016/5/13
http://www.bkjia.com/Pythonjc/732415.html 【 在 qingtianle 的大作中提到: 】 : 太感谢!python版的小伙伴真的让我感动。 : 这段代码我懂,之所以要用原生的socket,因为想在接受端得到数据的报头信息,但在socket端得到是解析之后的数据。用socket在接受端能得到数据的报头么?