Max*_*Max 0 python java sockets server
我尝试在我的Raspberry Pi(Python中的服务器)和本地网络上的Java客户端之间创建客户端/服务器应用程序.
我无法弄清楚如何从Python服务器向Java客户端发送消息.我总是有错误:[Errno 32]管子坏了.
我不明白我错了.
这里的服务器代码:
class ServerLED():
'''
classdocs
'''
def __init__(self, port = 15555):
'''
Constructor
'''
self.socketPi = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socketPi.bind(("", port))
self.response = ""
def listening(self):
self.socketPi.listen(5)
self.client, self.address = self.socketPi.accept()
print "{} connected".format( self.address )
def receivingMessage(self):
self.response = self.client.recv(1024)
if self.response != "":
print self.response
def answer(self):
messageTosend = "Echo \r\n"
try:
self.socketPi.send(messageTosend)
except socket.error, e:
print "error is ", e
self.socketPi.close()
Run Code Online (Sandbox Code Playgroud)
我用这种方式使用函数:
socketPi = Server.ServerLED()
print "listening..."
socketPi.listening()
print "sending message..."
socketPi.answer()
print "done"
socketPi.receivingMessage()
Run Code Online (Sandbox Code Playgroud)
在客户端(在JAVA中):
Socket socket = new Socket("192.168.1.18", 15555);
System.out.println("SOCKET = " + socket);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
str = in.readLine(); // Reding "ECHO"
System.out.println(str);
out.println("Hello"); // sending message
Run Code Online (Sandbox Code Playgroud)
我总是卡在服务器的第一个"发送()"中.如果我从客户端向服务器发送消息开始,服务器会读取它但无法响应.
服务器输出:
Start python for LED
listening...
('192.168.1.13', 58774) connected
sending message...
error is [Errno 32] Broken pipe
Run Code Online (Sandbox Code Playgroud)
有人知道我哪里错了吗?非常感谢.
马克西姆.
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |