c#實現P2P檔案分享與傳輸系統 一、模型 P2P的概念大家都不陌生,也就是所謂的“點對點傳輸”,即不直接通過伺服器,在兩台或多台用戶端之間傳輸資料,實現資訊交流和資源共用。P2P技術已經發展了很多年了,雖然理論上已經發展了很多的模型,但在實際的網路環境中(尤其是鎮裡這種環境),究竟怎樣的網路結構才具有較好的穩定性和較高的傳輸效能,還是有很大的爭議,每家做P2P的網路公司都會有不同的見解。當前,P2P技術應用的主要目的還是減輕伺服器工作壓力,本人不才,之前曾在國內某網路軟體公司裡擔任p2p相關
C語言輸入輸出函數有很多,標準I/O函數中包含了如下幾個常用的函數:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf(const char *format,
main函數有兩個參數main(int argc,char *argv[])第一個是整型代表整個參數的個數;第二個是字元型數組,argv【0】是指指令,也就是一般c程式的檔案名稱(在Linux環境下是編譯好的可執行檔名),argv【1】、argv【2】.......都是相應的參數。例如:我編了一段程式是將file1的程式拷貝到file2中,同時我的c語言代碼編譯後的可執行檔名為copy那麼在使用時我的格式是:copy file1
C# 列印表單上的所有Lable和TextBox(可多個表單)建立一個類,全部代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Text;using System.Drawing;using System.Drawing.Printing;using System.IO;using
1. 避免將多個類放在一個檔案裡面。2. 一個檔案應該只有一個命名空間,避免將多個命名空間放在同一個檔案裡面。3. 一個檔案最好不要超過500行的代碼(不包括機器產生的代碼)。4. 一個方法的代碼長度最好不要超過25行。5. 避免方法中有超過5個參數的情況。使用結構來傳遞多個參數。6. 每行代碼不要超過80個字元。7. 不要手工的修改機器產生的代碼。a) 如果需要編輯機器產生的代碼,編輯格式和風格要符合該編碼通訊協定。b) Use partial classes
.Net 架構程式設計(修訂版)中有這樣一段描述:String類型直接繼承自Object,這使得它成為一個參考型別,也就是說線程上的堆棧上不會駐留有任何字串。(譯註:注意這裡的“直接繼承”。直接繼承自Object的類型一定是參考型別,因為所有的實值型別都繼承自System.ValueType。值得指出的是System.ValueType卻是一個參考型別。)。 代碼一:string str1 = "string";string str2 =
C#調試,對新手應該有協助,原文地址:http://tech.it168.com/a2010/1116/1126/000001126474_all.shtml 我們在做程式開發時,難免會遇到錯誤異常。如何快速地找到出錯的地方、分析錯誤的原因以及找到問題的解決方案,是許多初級程式員困擾的問題,這也正是經驗的寶貴之處。下面我將簡單介紹在Visual Studio中調試以及一些進階的調試和常見的錯誤。 PS:如無特別說明Visual Studio均指Dev10即Visual Studio 2
原理:在主表單彈出來之前先運行歡迎介面,等運行完將歡迎介面關閉然後再開啟主表單。建立一個項目,再在原來的項目上添加一個windows表單,將其Name命名為FormWelcome,用來做歡迎介面。◆當然歡迎介面的話就得漂亮點,最基本的設定如下:ShowInTaskbar->True(令視窗不在工作列裡顯示)StartPosition->CenterScreen(讓視窗運行時出現在螢幕最中間)FormBorderStyle->None(去掉表單的邊框和標題列,這樣才像歡迎介面嘛)
Code highlighting produced by Actipro CodeHighlighter
錯誤描述:錯誤資訊有: CLSID
◇控制項的輸入驗證:處理:在代碼裡將所有輸入錯誤資料收集,最後一次性顯示出來,這樣可能方便提醒使用者,不需要每次輸一個控制項都要提示一次。 ◇觸控螢幕1.不要用下拉框2.一般要隱藏作業系統的工作列,程式退出後恢複工作列3.按鈕要盡量大,至少手指觸摸起來沒困難4. 控制項的Tab順序一般要先設定好,維護的時候儘管沒有滑鼠都可以比較容易操作。
之前做過一些表單最小化之後隱藏表單到右下角托盤的程式,一般就幾個事件和屬性的處理:程式啟動不顯示在工作列,點擊最小化後隱藏到右下角的托盤,點擊托盤表徵圖可以彈出程式介面。(具體怎樣做讀者可以自行搜尋,因為都大同小異我就不寫了)但是最近在做一個程式的時候遇到一個問題,最小化之後雖然不顯示在工作列,但是表單卻縮小到螢幕的左下角,結果還是不能實現真正的隱藏。可是我找出以前寫的一些程式來看,運行沒問題啊,最小化不會縮小到螢幕左下角啊,代碼也是一樣的啊,難道~~又是人品問題 - -!
原文地址:http://www.cnblogs.com/Zeech-Lee/archive/2011/10/14/2212376.html 廢話:最近遇到的項目發現,對於Winform擷取大資料量時,介面假死,體驗效果非常差。身為測試員,有義務也有責任提出BUG。每次測試都面對卡了超過5秒的介面,實在是一種折磨,更是一種自殺行為。與是自己便研究了下,可以通過多線程來處理,當然也可以通過後台來擷取資料。如果用多線程的話可以解決介面卡死的情況,但是對於動態載入資料的話可能複雜些。因為多線程的話,需
字串的分割 我們經常會遇到字串的分割的問題,在後面製作播放器的時候,可以用現在學習的方法來分割歌詞。 下面我們來具體看下string[]Split(params char[] separator):將字串按照指定的分割符分割為字串數組: 圖一、字串的分割String[] Split(char[] separator, StringSplitOptions
C#中超級好用的字串(本文獻給來自農村,上不起學的孩子們。阿彌陀佛) 字串可以看做char的唯讀數組C#中字串有一個重要的特性:不可變性,字串一旦聲明就不再可以改變。所以只能通過索引來讀取指定位置的char,不能對指定位置的char進行修改。 如果要對char進行修改,那麼就必須建立一個新的字串,用s.ToCharArray()方法得到字串的char數組,對數組進行修改後,調用new
引用:前一個專題簡單介紹了TCP編程的一些知識,UDP與TCP地位相當的另一個傳輸層協議,它也是當下流行的很多主流網路應用(例如QQ、MSN和Skype等一些即時通訊軟體傳輸層都是應用UDP協議的)底層的傳輸基礎,所以在本專題中就簡單介紹下UDP的工作原理和UDP編程的只是,希望可以對剛接觸網路編程的朋友起到入門的作用。一、UDP介紹UDP和TCP都是構建在IP層之上傳輸層的協議,但UDP是一種簡單、面向資料報(Sock_Dgram)的無串連協議,提供的是不一定可靠的傳輸服務。然而TCP是一種連
目錄:一、線程同步概述二、線程同步的使用三 、總結 一、線程同步概述 前面的文章都是講建立多線程來實現讓我們能夠更好的響應應用程式,然而當我們建立了多個線程時,就存在多個線程同時訪問一個共用的資源的情況,在這種情況下,就需要我們用到線程同步,線程同步可以防止資料(共用資源)的損壞。然而我們在設計應用程式還是要盡量避免使用線程同步, 因為線程同步會產生一些問題:1.
我們在用Asp.net技術開發Web應用程式後,當使用者在瀏覽器輸入一個網址時就是再向伺服器發送一個HTTP請求,此時就使用了應用程式層的HTTP協議,在上一個專題我們簡單介紹了網路通訊協定的知識,主要是為了後面講HTTP協議做一個鋪墊的,只有對HTTP協議有一個清楚的認識,這樣當我們用Asp.net技術開發Web應用程式時,我們可以多從網路通訊協定的方面去思考我們的應用程式,而不是只是單單停留在對伺服器控制項的拖拉的使用,這樣也可以協助我們開發一個自己的自訂web伺服器。在這裡我想同時把我對A
前言:經過前面的專題中對網路層協議和HTTP協議的簡單介紹相信大家對網路中的協議有了大致的瞭解的, 本專題將針對HTTP協議定義一個Web伺服器,我們平常瀏覽網頁通過在瀏覽器中輸入一個網址就可以看到我們想要的網頁,這個過程中瀏覽器只是一個用戶端,瀏覽器(應用程式層應用程式)通過HTTP協議把使用者請求發送到服務端,
先來看看我的Webservice方法: 1 [WebMethod] 2 public ArrayList GetOuterLinkImage(string storeId) 3 { 4 ArrayList arr = new ArrayList(); 5 List<string> strs = new List<string>(); 6 strs.Add("aa"); 7