1. 程式人生 > >服務端利用多執行緒TCP同時接受多個客戶端傳送檔案

服務端利用多執行緒TCP同時接受多個客戶端傳送檔案

 程式實現的是一個讀取照片(可改為其檔案型別)的服務端,可同時接受多個客戶端連線,並且同時接受多張圖片的資料。主要是通過多執行緒控制,每次檢測到有請求連線,則開闢一個新執行緒,新執行緒的作用是接受圖片, 通過不同執行緒同時執行達到可同時接收多張圖片。

1. 這是服務端的原始碼:

01.import java.io.*; 02.import java.net.*; 03.public class LoadPicServer { 04.public static void main(String[] args) throws IOException {
05.int listen_port = 10005;      //監聽的埠號 06.long filecount = 1;       07.ServerSocket ss = new ServerSocket(listen_port);          //監聽listen_port埠 08.if(ss.isBound()) 09.System.out.println("The Server is listenning the port " + listen_port); 10.while(true) { 11.Socket s = ss.accept();   
//檢查是否有連線,該語句是阻塞語句,如果沒有則會停在這。
12.if(s.isConnected()) {    //如果有連線則返回true,執行下面語句 13.String filename = new String("ServerPic" + filecount++ + ".jpg"); 14.System.out.println(s.getInetAddress().getHostAddress() 15." is connected!");                //獲取已連線的客戶端的IP 16.new Thread(new LoadPic(s,filename)).start();            
//開啟新執行緒接收圖片,主執行緒繼續回去while最開始檢查有無連線。
17.} 18.} 19.} 20.} 21./* 22.* 該類實現Runnable介面,用於實現多執行緒複製圖片。 23.* 該類的作用就是與主執行緒傳入的Socket連線進行通訊,從網路流獲取對方的傳送的檔案資料。 24.* */ 25.class LoadPic implements Runnable { 26.Socket s = null; 27.String filename = null; 28.BufferedInputStream bufin = null; 29.BufferedOutputStream bufout = null; 30.PrintWriter return_txt = null; 31. 32.public LoadPic(Socket s,String filename) { 33.this.s = s; 34.this.filename = filename; 35.} 36. 37.public void run() {  38.

相關推薦

服務利用執行TCP同時接受客戶傳送檔案

 程式實現的是一個讀取照片(可改為其檔案型別)的服務端,可同時接受多個客戶端連線,並且同時接受多張圖片的資料。主要是通過多執行緒控制,每次檢測到有請求連線,則開闢一個新執行緒,新執行緒的作用是接受圖片, 通過不同執行緒同時執行達到可同時接收多張圖片。 1. 這是服務

執行TCP/IP通訊的服務

 /* add include files */#include "winsock2.h"#include "afxmt.h"#include "Mmsystem.h"#include <time.h>#include <sys/types.h>#in

.NET應用架構設計—服務開發執行使用小結(執行使用常識)

有一段時間沒有更新部落格了,最近半年都在著寫書《.NET框架設計—大型企業級框架設計藝術》,很高興這本書將於今年的10月份由圖靈出版社出版,有關本書的具體介紹等書要出版的時候我在另寫一篇文行做介紹。可以先透露一下,本書是博主多年來對應用框架學習的總結,裡面包含了十幾個重量級框架模式,這些模式都是我們目前所經常

Java執行技術:實現使用者服務Socket通訊

目錄 前言回顧 一、多使用者伺服器 二、使用執行緒池實現服務端多執行緒 1、單執行緒版本 2、多執行緒版本 三、多使用者與服務端通訊演示 四、多使用者伺服器完整程式碼 最後 前言回顧 在上一篇《Java多執行緒實現TCP網路Socket程式設計(C/S通訊)》,我們解決了伺服器端在建立連線後,連續傳送多條資

【Linux C/C++】 第08講 執行TCP傳輸檔案/select模型

一、多執行緒    pthread.h    libpthread.so   -lpthread    1.建立多執行緒      1.1 程式碼   &nbs

[C#原始碼]網路資料流讀寫封裝類,支援執行同時讀和寫,自動資源管理,字串分隔符\r\n

using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using Syst

Linux C: 基於C/S的執行網路程式設計 2 (客戶)

客戶端: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/type

基於threading模組下Thread,實現執行TCP套接字通訊

伺服器 import socket from threading import Thread import struct, json IP = '127.0.0.1' PORT = 8080 ADD = (IP, PORT) server = socket.socket

Linux下socket程式設計之執行TCP伺服器

程式碼如下: thread_server.c #include<string.h> #include<stdlib.h> #include<stdio.h> #include<sys/types.h> #i

執行實現伺服器與客戶通訊,客戶之間相互不干擾

1,服務端建立ServerSocket繫結埠號,迴圈呼叫accept()方法 2,客戶端建立一個socket並請求和伺服器端連線 3,伺服器端接受客戶端請求,建立socket與該客戶建立連線 4,兩個socket在一個單獨的執行緒上通話 5,伺服器端繼續等待新的連線

使用VC#製作執行TCP connect掃描器

本文已投稿《黑客安全基地》。文章為《黑客安全基地》所有,未經《黑客安全基地》同意不得轉載。謝謝合作!  如果你想知道對方的計算機提供什麼服務,什麼工具是你最常用的?沒錯!掃描器。現在各式各樣的掃描器少說也後好幾百種了。從很早以前的HakTek(這並不是最早的掃描器,但是筆者見到的第一個掃描器。)到現在的X-S

執行TCP伺服器

1.模組 TCP多執行緒伺服器的建立也很簡單!需要引進模組threading。threading模組用於提供執行緒相關的操作,執行緒是應用程式中工作的最小單元。 2.程式碼 import socket import threading bind_ip = "1

socket執行、一個伺服器客戶的實現

鑑於ServerSocket的accept方法是阻塞的,那麼只能通過多執行緒的方式實現多客戶端連線與伺服器連線 基本步驟: 1,服務端建立ServerSocket繫結埠號,迴圈呼叫accept()方法 2,客戶端建立一個socket並請求和伺服器端連線 3,伺服器端接

java_執行_socket通訊_客戶傳送,伺服器響應

/** * 伺服器端不斷接受請求 * 接受一個請求開啟一段執行緒 */ package 練習0927; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt

【精】【執行】ListenableFuture非同步執行查詢實現

  業務場景:為優化查詢效率,將原有查詢的條件做成單獨的索引表,每次產生記錄就會同步到索引表中,每次查詢索引表,根據索引便利的條件欄位再分別查詢每張子表的內容,最後封裝成前臺要的實體類。這裡面涉及到非同步查詢,如何保證一條記錄下的子表全部都查出來後才執行下面的操作。 下面Demo簡

32-執行--概述+Thread類+執行的建立方式(繼承Thread類+實現Runnable介面)+Runnable介面+執行的名稱+執行的狀態

一、概述 1、程序:對應的是一個應用程式在記憶體中的所屬空間。程序是不直接執行的,它只是在分配該應用程式的記憶體空間 注:如果一個程式在記憶體中開闢了空間,就代表它在執行。不執行要釋放空間 2、執行緒:程序中的一個負責程式執行的控制單元,也叫執行路徑。一個程序中可以有多個執行路徑,稱之為

python執行———2、建立執行的兩種方式

 法一、使用Thread類例項化 法二、繼承Thread來實現多執行緒 #對於io操作來說,多執行緒和多程序效能差別不大 #1、使用Thread類例項化 import time import threading def get_detail_html(url): prin

JAVA高併發執行必須懂的50問題

ImportNew  首頁所有文章資訊Web架構基礎技術書籍教程Java小組工具資源  Java執行緒面試題 Top 50  2014/08/21 | 分類: 基礎技術 | 27 條評論 | 標籤: 多執行緒, 面試題  分享到: 692  本文由

安卓執行間通訊和程序之間通訊有什麼不同?分別怎麼實現?

**當一個程式第一次啟動的時候,Android會去動一個Linux進行和一個主執行緒,預設情況下,所有改程式元件都將在該程序和執行緒中 執行,同時Android會為每個應用程式分配一個單獨的Linux使用者,Android會盡量保留一個正在執行的程序,只在記憶體資源出現不足時,Andro

執行學習-day-01執行基礎

執行緒基礎、執行緒之間的共享和協作 (目前會將一些概念簡單描述,一些重點的點會詳細描述) 1,CPU核心數和執行緒數之間的關係 ①、一塊CPU只有一塊處理器 ②、Inter提出了多核處理器 ③、CPU核心數 和 執行緒數 是 1:1 的關係 ④、Inter提出了超執行緒,