1. 程式人生 > >JAVA socket傳輸圖片

JAVA socket傳輸圖片

Server端:

import java.net.*;
import java.sql.SQLException;

import javax.imageio.ImageIO;

import java.awt.image.BufferedImage;
import java.io.*;

public class ServerTest extends Thread
{
       private ServerSocket serverSocket;
       Socket server;

       public ServerTest(int port) throws IOException, SQLException, ClassNotFoundException, Exception
       {
          serverSocket = new ServerSocket(port);
          serverSocket.setSoTimeout(180000);
       }

       public void run()
       {
           while(true)
          { 
               try
               {
                  server = serverSocket.accept();
                  DataInputStream din=new DataInputStream(server.getInputStream());
                  DataOutputStream dout=new DataOutputStream(server.getOutputStream());

                  dout.writeUTF("server: -i am greeting server");
                  dout.writeUTF("server:- hi! hello client");

                  System.out.println(din.readUTF());
                  System.out.println(din.readUTF());

                  BufferedImage img=ImageIO.read(ImageIO.createImageInputStream(server.getInputStream()));
                  
                  ImageIO.write(img,"jpg",new File("F:\\test.jpg")); 
                  System.out.println("Image received!!!!"); 
                  //lblimg.setIcon(img);
              }
             catch(SocketTimeoutException st)
             {
                   System.out.println("Socket timed out!");
                  break;
             }
             catch(IOException e)
             {
                  e.printStackTrace();
                  break;
             }
             catch(Exception ex)
            {
                  System.out.println(ex);
            }
          }
       }
       
       public static void main(String [] args) throws IOException, SQLException, ClassNotFoundException, Exception
       {
              //int port = Integer.parseInt(args[0]);
              Thread t = new ServerTest(6066);
              t.start();
       }
}


Client:

package lisa;

import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.image.BufferedImage;

import javax.imageio.*;
import javax.swing.ImageIcon;

public class ClientTest
{
    Image newimg;
    static BufferedImage bimg;
    byte[] bytes;

   public static void main(String [] args)
   {
      String serverName = "localhost";
      int port = 6066;
      try
      {
         System.out.println("Connecting to " + serverName
                             + " on port " + port);
         Socket client = new Socket(serverName, port);

         System.out.println("Just connected to "
                      + client.getRemoteSocketAddress());

        DataInputStream in=new DataInputStream(client.getInputStream());
        System.out.println(in.readUTF());
        System.out.println(in.readUTF());

         DataOutputStream out =
                       new DataOutputStream(client.getOutputStream());

         out.writeUTF("Hello from "
                      + client.getLocalSocketAddress());
         out.writeUTF("client: hello to server");

         ImageIcon img1=new ImageIcon("Ashish.jpg");
         Image img = img1.getImage();
         Image newimg = img.getScaledInstance(100, 120,  java.awt.Image.SCALE_SMOOTH);
         ImageIcon newIcon = new ImageIcon(newimg);

         bimg = ImageIO.read(new File("F:\\dili.jpg"));

         ImageIO.write(bimg,"JPG",client.getOutputStream());
         System.out.println("Image sent!!!!");
         client.close();
      }catch(IOException e)
      {
         e.printStackTrace();
      }
   }
}


相關推薦

JAVA socket傳輸圖片

Server端: import java.net.*; import java.sql.SQLException; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import j

java socket 傳送圖片檔案。

程式碼如下,檔案轉成二進位制再一次通過outputStream寫到請求的套接字中。 import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import j

Java socket傳送圖片

1,伺服器端程式 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.G

Java Socket通訊實現檔案傳輸/圖片傳輸

Scoket傳送 ClientTcpSend.java: import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.net.InetS

Java Socket實戰之四 傳輸壓縮物件

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java Socket實戰之七 使用Socket通訊傳輸檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Java Socket實戰之三 傳輸物件

                前面兩篇文章介紹了怎樣建立Java Socket通訊,這一篇說一下怎樣使用Java Socket來傳輸物件。首先需要一個普通的物件類,由於需要序列化這個物件以便在網路上傳輸,所以實現java.io.Serializable介面就是必不可少的了,入下:package com.go

java socket 連線資料傳輸判斷是否結束

Java當中的Socket類,其實是使用TCP協議進行傳輸的.TCP是可靠的一種傳輸協議.  如果想用TCP協議,並且,服務端和客戶端,在沒有資訊進行傳輸的時候,也不斷開連線,一般情況下,客戶端會在Socket超時之前,想服務端傳送一個用於維持連線的資訊包,來維持連線.但是TCP協議,並不是指長連線.我們每

Java Socket程式設計 檔案傳輸(客戶端從伺服器下載一個檔案)

用於客戶端從伺服器端下載檔案 伺服器(Server) package com.socket.sample; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.i

Java Socket通訊 客戶端與伺服器端的連線 和資訊傳輸

一.建立客戶端和伺服器端的連線。 方法分2步: 1.在客戶端建立Socket物件,用來發送連線請求 2.在伺服器端穿件ServerSocket物件,用來接收請求。 //客戶端 public clas

(轉載)Java Socket實戰之三:傳輸物件

前面兩篇文章介紹了怎樣建立Java Socket通訊,這一篇說一下怎樣使用Java Socket來傳輸物件。 首先需要一個普通的物件類,由於需要序列化這個物件以便在網路上傳輸,所以實現java.io.Serializable介面就是必不可少的了,如下: package com.googlecode.garb

Android\java實現Socket傳輸物件

關於Socket介紹,請參考大佬部落格https://blog.csdn.net/u013782203/article/details/51289803,寫的很細緻,非常佩服大神能研究的這麼透徹。ClientSendActivity.javapackage wifi.tran

關於如何在同一臺電腦上的兩個安卓模擬器之間的socket通訊(圖片傳輸)

最近課程學習中,遇到了這個問題。 網上搜了一大堆,基本都是抄來抄去的。 即使自己寫的,說的也不是很完全。自己第一次用安卓開發,也走了很多彎路。所以寫下這篇部落格,希望初學者可以少走彎路。本文講的都是很基礎的東西。保證初學者按照步驟來,可以run成功。 開發環境使用的Ecli

Java Socket實戰傳輸壓縮物件

有些情況下比如網路環境不好或者物件比較大的情況下需要把資料物件進行壓縮然後在傳輸,此時就需要壓縮這些物件流,此時就可以GZIPInputStream和GZIPOutputStream來處理一下socket的InputStream和OutputStream。 仍然需要一個實現了java.io.Serializ

java Socket 檔案傳輸

客戶端: import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.I

java讀取網頁圖片路徑並下載到本地

mage -h form read file cti 連接 公司 date() java讀取網頁圖片路徑並下載到本地 最近公司需要爬取一些網頁上的數據,自己就簡單的寫了一個demo,其中有一些數據是圖片,需要下載下來到本地並且 將圖片的路徑保存到數據庫,示例代碼如下: pa

Java Socket編程之TCP

null 即將 import tip rate 客戶端信息 連接建立 adl exce 基於TCP的Socket通信: 服務器端: 創建一個服務器端Socket,即ServerSocket,指定綁定的端口,並監聽此端口 調用accept()方法開始監聽,等待客戶端的連接

Java Socket編程之UDP

oid 大小 throw tar int while thread print client UDP編程: 將要傳輸的數據定義成數據包(Datagram),在數據報中指明所要到達的Socket(主機地址和端口號),然後再將數據報發送出去。 相關操作類: Datagr

Java Socket 編程

unknown sleep 專註 pre data cat parseint 描述 rup 1. 背景   網絡編程是指編寫運行在多個設備(計算機)的程序,這些設備都通過網絡連接起來。   java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通

java socket編程中backlog的含義(zz)

layer rgs oid new ria ret 處理 pts 套接字 使用Java.NET.ServerSocket能夠方便的創建一個服務端套接字,這個類的構造函數有一個參數backlog。下面這段代碼,在本機的8888端口上建立了一個套接字,backlog