使用套接字发送base64信息

时间:2015-06-24 00:46:47

标签: java python sockets base64

我一直在使用python上的服务器和java上的客户端。我已经从java中的客户端向python中的服务器发送了一张图片,并将其编码为base64并将其以blob格式保存在sql表中。我的问题是:如何从java获取整个代码?我目前做的不起作用。

这是我在python中保存图片的方式:

with open("test.png", "rb") as f:
   data1 = f.read()
   data1.encode("base64")
   name1="Michael"# this is the user
with con:
      cur = con.cursor()
      cur.execute("INSERT INTO Pictures VALUES (%s, %s )",(name1, data1))

这是我发送图片的方式:

   cur.execute("SELECT Pictures FROM Pictures where Users=%s",(name))#this is getting the encoded info
   rows=cur.fetchall()
   row_exist = int(cur.rowcount)
   if row_exist!=0:
     for row in rows:
         img=row["Pictures"]
         img.decode('base64')
         clientsock.send("About to send image\n")
         clientsock.sendall(img)
         clientsock.send("Something\n")

客户端中的代码:(java):

    DataInputStream in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
    FileOutputStream writer= new FileOutputStream("/home/michael/Pictures/Somepic.png");
    while ((servMes=in.readLine())!=null)
    { 

     if (servMes.equals("About to send image"))


     { 
         System.out.println("entered");


     }}

我应该用Java写什么以便发送图片?我不确定如何为base64类型的信息提供适当的缓冲区。我已经尝试使用字符串“Something”来解决问题,但我不能。

我知道我之前发过类似的问题,但我从来没有得到正确的答案。 (如果您还可以在Java中添加转换为图像文件,我将非常感激)

0 个答案:

没有答案