【发布时间】:2017-05-02 20:23:12
【问题描述】:
我正在使用this method 从 Java 客户端发送数据并在 python 服务器上接收它。发送的数据是一个长度为 10 的简单字符串,但我无法在服务器端接收它。即使正确建立连接,它也会显示接收数据的空白输出。我检查了this 问题,所以我重新编程了我的服务器,首先接收 2 个字节,然后接收字符串,但它不起作用。谁能解释一下?我已经放了一些 cmets 来解释输出。
服务器.py
import socket
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
print "Socket Created..."
s.bind((str(socket.INADDR_ANY), 2609))
print "Socket bound to INADDR_ANY with port 2609..."
s.listen(5)
print "Socket listening for connections..."
print "Waiting for client to connect..."
(c, remote_addr) = s.accept()
print "Connection From" + str(remote_addr) + " accepted"
rec = 'pppppppppppppppppp'
print 'rec = ' + rec #Properly prints the initialized string
print 'lenght is ' + str(len(rec)) #prints length = 18
print "Receiving Data..."
leng = c.recv(2)
print "Data received..."
print leng #Does not print Anything
rec = c.recv(1024)
print rec #Does not print Anything
print 'lenght is ' + str(len(str(rec))) #Length is 0
c.close()
print "Client socket closed..."
s.close()
print "Server Socket closed..."
输出
% python Server.py
Socket Created...
Socket bound to INADDR_ANY with port 2609...
Socket listening for connections...
Waiting for client to connect...
Connection From('192.168.43.7', 39100) accepted
rec = pppppppppppppppppp
lenght is 18
Receiving Data...
Data received...
lenght is 0
Client socket closed...
Server Socket closed...
【问题讨论】:
-
您使用哪个版本的 Python?
-
@thatguy : python 2.7