通过socket传送图片的问题
部分代码如下:
客户端
public class Client
{
public static void main( String[] args )
{
try
{
Socket client = new Socket( "localhost", 5888 );
OutputStream sender = client.getOutputStream();
// 获取到屏幕图片数据
BufferedImage img = Screen.SnapShot();
// 生成文件 这里是可以生成图片的,大小大概为88.7kb
ImageIO.write(img, "png", new File("screen.png"));
// 转为比特后发送
sender.write( Client.getCompressedImage( img ) );
client.close();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
/**
* 图片转换为byte
* @param image
* @return
*/
public static byte[] getCompressedImage( BufferedImage image )
{
byte[] imageData = null;
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write( image, "png", baos );
imageData = baos.toByteArray();
}
catch ( IOException ex )
{
imageData = null;
}
return imageData;
}
}
服务端
public class Server
{
/**
* @param args the command line arguments
*/
public static void main( String[] args )
{
try
{
ServerSocket server = new ServerSocket( 5888 );
Socket client = server.accept();
InputStream inputStream = client.getInputStream();
Scanner sc = new Scanner( inputStream );
String result = "";
int counter = 0;
while( sc.hasNextLine() )
{
result += sc.nextLine();
// 直接限制到400行就停止了,不加的话会一直循环…
if ( counter++ == 400 ) break;
}
byte[] resultToBytes = result.getBytes();
FileOutputStream out = new FileOutputStream( "test.png" );
// 生成的文件大于88.7kb 而且16进制与原图片的不同
out.write( resultToBytes );
out.close();
client.close();
}
catch ( IOException e )
{
e.printStackTrace();
}
}
}
相关推荐
Qt使用Socket传送图片
发送端: void Widget::on_pushButton_clicked() { qDebug()<<"sendPicture clicked"; QPixmap pix(tr("th.jpg")); QBuffer buffer; buffer.open(QIODevice::ReadWrite); pix.save(&buffer,"jpg"); quint32 pix_len = (quint32)buffer.data().
android socket发送图片
传送图片,开始信息不全,修改后总算正确传输。 java 写的服务器,把读取的图片保存到本地。 public class AndroidRunable implements Runnable { Socket socket = null; public AndroidRunable(Socket st) { this.socket = st; } public void run(
总结 socket 连续发送图片
建立client - server 的过程: closesocket()并不能正真的关闭套接字,要想关闭后重新连接,需要设置sClient= INVALId_SOCKET; 并在客户端重新建立连接socket();程序如下: 一。客户端 #include "stdafx.h" #include #include #include #include
Java TCP使用Socket进行网络图片传送
本文演示,使用Socket进行网络图片传送,实现客户端的client.bmp文件上传到服务端。 1)客户端,上传client.bmp图片给服务端,并接受服务端返回的“上传成功”消息。 2)服务端,接受客户端的图片并保存为server.bmp,同时给客户端发送“上传成功”消息。 客户端,代码如下: package upload.photo.client; ...
python 使用socket传输图片视频等文件的实现方式
这篇文章主要介绍了python 使用socket传输图片视频等文件的实现方式,本文给出了实例代码,需要的朋友可以参考下 在开发一些需要网络通信的应用中,经常会用到各种网络协议进行通信,博主在开发实验室的机器人的时候就遇到了需要把机器人上采集到的图片传回服务器进行处理识别,在python下的实现方式如下(只贴出了关键代码) 服务器端 LOCAL_IP = '192.168.100.22' #本机在...


Java SE
