返回信息流用python进行原生socket编程,socket类型socket.SOCK-RAW,协议socket.IPPROTO-RAW
,在client端自定义数据包,然后发送。问题是在server端如何接收这个包?
这是一条镜像帖。来源:北邮人论坛 / python / #14089同步于 2016/5/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
(求助)python原生socket编程
qingtianle
2016/5/12镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
暖神,我在server端创建的socket采用与client端相同的协议,但是listen()函数进行监听时报错,说Operation not supported,因此接受不到client端的连接请求,建立不了连接。
在client端也用过sendto()函数,在sendto(函数中指明server端的地址和端口号),server端也接受不到。
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 如果不用Python,那么服务器端应该怎么接受这个包呢?
暖神,感觉问题出在,我不知道用原生socket时如何使client与server建立连接。server()调用listen()报错。
【 在 nuanyangyang (暖羊羊) 的大作中提到: 】
: 如果不用Python,那么服务器端应该怎么接受这个包呢?
我是在linux下用root权限跑的程序,今天我再研究下,谢啦
【 在 asif12 (彩虹之梦) 的大作中提到: 】
: windows似乎不行?忘了。linux,root权限在试试,你这是一权限错误。
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()
太感谢!python版的小伙伴真的让我感动。
这段代码我懂,之所以要用原生的socket,因为想在接受端得到数据的报头信息,但在socket端得到是解析之后的数据。用socket在接受端能得到数据的报头么?
【 在 qweyezhy640 (MockingBird) 的大作中提到: 】
: server:
: ss = socket.socket()
: ss_value=""
: ...................
http://www.bkjia.com/Pythonjc/732415.html
【 在 qingtianle 的大作中提到: 】
: 太感谢!python版的小伙伴真的让我感动。
: 这段代码我懂,之所以要用原生的socket,因为想在接受端得到数据的报头信息,但在socket端得到是解析之后的数据。用socket在接受端能得到数据的报头么?