socket.recv(bufsize[, flags])
Receive data from the socket. The return value is a string representing the data received.
The maximum amount of data to be received at once is specified by bufsize. See the Unix manual page recv(2) for the meaning of the optional argument flags; it defaults to zero.
这里说 return value is a string representing 是什么意思?
如下的程序,客户端为什么 print data 打印出的是乱码,这个不是 ASCII 码表示的 510 吗? -------------------------------------客户端------------------------- `
import socket
HOST = '127.0.0.1' # The remote host PORT = 50007 # The same port as used by the server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) s.sendall('\x05\x01\x00') data = s.recv(1024) s.close()
print data
print 'Received', repr(data)
---------------------------------服务器端--------------------------------------
import socket
HOST = '' # Symbolic name meaning all available interfaces PORT = 50007 # Arbitrary non-privileged port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() print 'Connected by', addr while 1: data = conn.recv(1024) if not data: break conn.sendall(data) conn.close() `
1
ms2008 2016-05-26 09:43:09 +08:00
当然乱码啊,你发的就是二进制流
|
2
Muninn 2016-05-26 15:01:03 +08:00
你在本地能把 print('\x05\x01\x00') 打出来再说,汗。。。
|