Ami*_*ami 5 python sockets send
我使用 python 套接字工作了一段时间,我写了一些很好的简单程序。
我每次遇到的问题都是关于套接字中的发送和接收方法!给你一个基本而简单的例子:
这是接收器(服务器!):
Run Code Online (Sandbox Code Playgroud)import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 4001)) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.listen(5) while True: conn, addr = s.accept() print conn, addr data1 = conn.recv(64) data2 = conn.recv(64) print 'uname is %s , password is: %s' %(data1, data2, ) conn.close()
这是发件人(或客户!):
Run Code Online (Sandbox Code Playgroud)import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('', 4001)) uname = raw_input('enter username>') passw = raw_input('enter password>') s.send(uname) s.send(passw) print 'exiting ...' s.close()
所以问题是,为什么服务器在第一个 s.recv() 方法中同时收到 uname 和 passw ?这意味着 data2 总是空的!
我真的不知道当客户端使用 s.send() 时会发生什么。我在想每个 s.send() 都会向目的地 (ip,port) 发送一个“数据包”!!
有人可以向我解释为什么第二个代码(另一个客户端)正在工作?
Run Code Online (Sandbox Code Playgroud)import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('', 4001)) uname = raw_input('enter username>') s.send(uname) passw = raw_input('enter password>') s.send(passw) print 'exiting ...' s.close()
| 归档时间: |
|
| 查看次数: |
2403 次 |
| 最近记录: |