P2P 影音暴載王-Download King
書號:F513
定價:360 元
施威銘研究室 著
我要線上購買 |
|
本期文摘:優質的 P2P 伺服器大公開
本文摘錄自旗標 F513「P2P 影音暴載王-Download King 」一書
優質 eMule、eDonkey 伺服器大公開
伺服器在 eMule 中扮演的角色是用戶與用戶間的橋樑,
要是伺服器可容納的用戶過少、搜尋速度太慢, 或是
動不動就斷線, 對檔案下載會有很大的影響, 本期文摘
我們就推薦您幾個國內 eMule 使用者最常駐足的伺服
器, 相信對您會有不小的幫助。
國內使用者最常連結的伺服器
目前國內網友自行架設的 eMule 不多, 而且可容納的
用戶數量也都偏低, 除了 TLF Taiwan ED Server 之外
, 幾乎沒有其他選擇, 因此許多使用者會習慣連結到國
外伺服器, 在此就介紹 5 個最多人造訪的伺服器。
TLF Taiwan ED Server
================================================
IP 位址:140.123.108.139 通訊埠:7654
================================================
知名分享論壇 TLF 所架設的伺服器, 是目前國內 eMul
e 用戶最多人駐足的地方。不過由於最大連線數僅 300
00 人, 伺服器經常呈現滿載狀況, 要想順利登入, 可
得反覆進行連線動作。
ProbenPrinz Server
================================================
IP 位址 1:62.241.53.15 通訊埠:4661
IP 位址 2:62.241.53.16 通訊埠:4661
IP 位址 3:62.241.53.17 通訊埠:4661
================================================
位於德國的伺服器, 同時間有 7~8 個伺服器在運作,
最大連線數都在 20 萬以上, 而且運作穩定、搜尋速度
快, 是非常值得推薦的伺服器。
Emule Server
================================================
IP 位址 1:207.44.222.47 通訊埠:4661
IP 位址 2:207.44.206.27 通訊埠:9090
IP 位址 3:62.111.39.21 通訊埠:4242
================================================
國外知名的伺服器, 提供 No.1~No. 3 等 3 個主要的
伺服器, 不但連線穩定、少斷線, 而且每個伺服器可容
納的用戶數量都不少, 其中 No.3 更可容納達 10 萬人
之多, 因此檔案資源相當豐富。
Korea_Only Server
================================================
連接位址 :211.233.41.235 通訊埠:4661
================================================
從名稱即可判斷出是韓國人架設的伺服器, 近來由於韓
國電影、戲劇、音樂在國內大行其道, 因此也有不少人
專門連結到此伺服器, 以快速下載到韓國資源。Korea_
Only 伺服器最大連線數約 5~10 萬, 通常都可以順暢
進行連線。
Razorback Server
================================================
IP 位址:192.245.244.243 通訊埠:4661
================================================
同樣是著名的外國伺服器, 可容納的連線人數一直是
eMule 網路中的第一名, 目前已提升到 40 萬人次之譜
(有時會降為 20 萬), 檔案資源也達數千萬之多, 堪
稱資源最豐富的伺服器, 獲得不少國內網友支持、進駐
。
將常造訪的伺服器設為靜態伺服器
一般我們習慣造訪的伺服器多半是固定的, 不過有時伺
服器暫時斷線時, eMule 常會將這些伺服器刪除, 或是
連接到其他莫名奇妙的伺服器, 等您發現伺服器被更動
時, 檔案下載進度已停頓許久了。
有鑑於此, 建議您將常連線的伺服器設為『靜態伺服器
』, 避免 eMule 對這些伺服器做任何更動, 並可藉此避
免 eMule 連線到其他伺服器。
eMule 搜尋檔案的小技巧
許多人常會抱怨 eMule 的搜尋工具不好用, 不是找到
一大堆資料, 要不就是一個檔案都沒有。其實 eMule
的檔案資源如此豐富, 一些大型伺服器的分享資源動輒
上千萬, 要是不使用一些技巧, 確實很難準確找到自己
要的檔案, 在此筆者就傳授您幾招搜尋的訣竅。
招式 1:使用『全球搜尋』或 Web 網站擴大尋找範圍
eMule 在搜尋資料時, 預設只會查找您登入伺服器的檔
案清單, 若您登入的伺服器資源少得可憐, 自然不容易
找到您要的檔案, 這時建議您以『全球搜尋』功能進行
搜尋, eMule 會自動連結到『登記有案』的伺服器中,
挖掘您要的資料, 查找的結果會比較理想。
另外, eMule 也提供 Web 搜尋的服務, 只要將搜尋範
圍切換為FileDonkey 或 Jigle, 按下開始鈕後, 即會
自動連結到 FileDonkey、Jigle 網站進行搜尋;不過
據筆者的經驗, 此種方式的搜尋結果遠不上全球搜尋豐
富, 建議您還是以全球搜尋為主。
招式 2:以分享團隊名稱進行搜尋
在 eMule 網路中, 有許多團隊或個人常會定期貢獻各
類型檔案, 像是著名的 TLF、ShareReactor、TWED2K
等, 都是頗受推崇的團隊, 另外像是 DcN、NewMov 則
會定期釋出許多熱門電影。為了讓下載用戶瞭解檔案的
來源, 這些分享團隊都會在檔案名稱上加入自己的名稱
, 以示區分, 您也可以參考下表, 利用這些團隊名稱來
找檔。
除了上表所列的名稱外, eMule 上尚有許許多多熱心的
網友, 會定時分享各類資源, 當您發現這類好心人士時
, 不妨也記下他們分享慣用的前置名稱, 可以快速查詢
到許多資源。
招式 3:用影片縮寫名稱查找影片資源
當您想要下載某部影片時, 多半會利用其名稱來搜尋,
不過您可能會發現, 找到的資源常常少的可憐, 即使是
當紅影片也一樣。其實, 許多分享團隊在釋出影片的相
關資源時, 往往是以其名稱的縮寫來命名, 因此以完整
名稱來尋找, 反而容易落空。例如:假設影片名稱為
『King Of The World』 , 可以改使用『KOTW』進行搜
尋, 或許會有意想不到的發現喔!
--- 本篇完
|
ASP.NET Starter Kit 商務網站速成
書號:F8927
定價:450 元
周世雄 著
我要線上購買
| |
電子商務網站 ─ 購物車動作原理【上】
本文摘錄自旗標 F8927「ASP.NET Starter Kit 商務網站速成」一書
本期文摘取自第三章「電子商務入門套件進階開發 ─ 購物車動作原理」,全章內容說明程式設計師(Developer),如何使用美國微軟公司所開發、免費、又開放原始程式碼的ASP.NET Starter Kit中之Commerce Starter Kit(電子商務入門套件),學習程式碼中可以拿來參考的地方。
包括入口網站引擎動作原理、10種常用內容的入口網站模組、入口網站安全機制、Context物件暫存入口網站設定、ASP.NET三層式架構、支援行動裝置(ASP.NET Mobile Controls)等動作原理與程式設計技巧。
加入商品到購物車
加入商品到購物車時執行AddToCart.aspx,當網頁載入
時將執行Page_Load(),其中呼叫 ShoppingCartDB.vb
的GetShoppingCartId() 取得使用者的shopping cart
ID,再呼叫 AddItem() 加商品資料到購物車資料庫:
================================================
'新增商品項目到購物車
Private Sub Page_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
If Not Request.Params("ProductID") Is Nothing Then
Dim cart As ASPNET.StarterKit.Commerce.ShoppingCartDB = New
ASPNET.StarterKit.Commerce.ShoppingCartDB()
'取得使用者的shopping cart ID
Dim cartId As String = cart.GetShoppingCartId()
'新增商品項目到購物車
cart.AddItem(cartId, CInt(Request.Params("ProductID")), 1)
End If
Response.Redirect("ShoppingCart.aspx")
End Sub
================================================
其中ShoppingCartDB.vb的AddItem () 執行預存程序
CMRC_ShoppingCartAddItem,加資料到購物車資料庫:
================================================
Public Sub AddItem(ByVal cartID As String, ByVal productID As
Integer, ByVal quantity As Integer)
'由Web.Config取得資料庫連線字串, 設定預存程序名稱
Dim myConnection As SqlConnection = New SqlConnection
(ConfigurationSettings.AppSettings("ConnectionString"))
Dim myCommand As SqlCommand = New SqlCommand(
"CMRC_ShoppingCartAddItem",myConnection)
'設定命令為預存程序
myCommand.CommandType = CommandType.StoredProcedure
'輸入預存程序輸入參數值
Dim parameterProductID As SqlParameter = New SqlParameter(
"@ProductID", SqlDbType.Int, 4)
parameterProductID.Value = productID
myCommand.Parameters.Add(parameterProductID)
Dim parameterCartID As SqlParameter = New SqlParameter(
"@CartID", SqlDbType.NVarChar, 50)
parameterCartID.Value = cartID
myCommand.Parameters.Add(parameterCartID)
Dim parameterQuantity As SqlParameter = New SqlParameter(
"@Quantity", SqlDbType.Int, 4)
parameterQuantity.Value = quantity
myCommand.Parameters.Add(parameterQuantity)
'連線資料庫並執行預存程序
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub
================================================
預存程序CMRC_ShoppingCartAddItem,若購物車已經有
此商品則更新數量,若購物車尚無此商品則新增記錄到
CMRC_ShoppingCart資料表中:
================================================
CREATE Procedure CMRC_ShoppingCartAddItem
(
@CartID nvarchar(50),
@ProductID int,
@Quantity int
)
As
DECLARE @CountItems int
SELECT @CountItems = Count(ProductID)
FROM CMRC_ShoppingCart
WHERE ProductID = @ProductID AND CartID = @CartID
IF @CountItems > 0 /* 若購物車已經有此商品則更新數量 */
UPDATE CMRC_ShoppingCart
SET Quantity = (@Quantity + CMRC_ShoppingCart.Quantity)
WHERE ProductID = @ProductID AND CartID = @CartID
ELSE /* 若購物車尚無此商品則新增記錄 */
INSERT INTO CMRC_ShoppingCart(CartID, Quantity, ProductID)
VALUES(@CartID, @Quantity, @ProductID)
GO
================================================
購物車
購物車程式ShoppingCart.aspx,包括DataGrid控制項:
================================================
<asp:DataGrid id="MyList" runat="server" Font-Names="Verdana"
AutoGenerateColumns="False" DataKeyField="Quantity"
AlternatingItemStyle-CssClass="CartListItemAlt"
ItemStyle-CssClass="CartListItem"
FooterStyle-CssClass="CartListFooter"
HeaderStyle-CssClass="CartListHead" ShowFooter="True"
Font-Size="8pt" Font-Name="Verdana" cellpadding="4"
GridLines="Vertical" BorderColor="Black">
<AlternatingItemStyle
CssClass="CartListItemAlt"></AlternatingItemStyle>
<ItemStyle CssClass="CartListItem"></ItemStyle>
<HeaderStyle CssClass="CartListHead"></HeaderStyle>
<FooterStyle CssClass="CartListFooter"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="產品編號">
<ItemTemplate>
<asp:Label id="ProductID" runat="server" Text='<%#
DataBinder.Eval(Container.DataItem, "ProductID") %>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ModelName" HeaderText="產品名稱
"></asp:BoundColumn>
<asp:BoundColumn DataField="ModelNumber" HeaderText="型號"
></asp:BoundColumn>
<asp:TemplateColumn HeaderText="數量">
<ItemTemplate>
<asp:TextBox id="Quantity" runat="server" Columns="4"
MaxLength="3" Text='<%# DataBinder.Eval(Container.DataItem,
"Quantity") %>' width="40px" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="UnitCost" HeaderText="價格"
DataFormatString="{0:c}"></asp:BoundColumn>
<asp:BoundColumn DataField="ExtendedAmount" HeaderText="小
計"DataFormatString="{0:c}"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="刪除">
<ItemTemplate>
<center>
<asp:CheckBox id="Remove" runat="server" />
</center>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
================================================
當網頁載入時將執行Page_Load(),從資料庫的
CMRC_ShoppingCart資料表取得購物車的資料後,再資
料繫結ProductID(商品編號)、ModelName(產品名稱
)、ModelNumber(型號)、Quantity(數量)、UnitC
ost(價格)欄位到DataList控制項,當呼叫DataBind()
時執行Web使用者控制項的「<%# … %>」部份。
Page_Load() 中呼叫PopulateShoppingCartList:
================================================
Private Sub Page_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
If Page.IsPostBack = False Then
'資料繫結購物車(Shopping Cart)以顯示
PopulateShoppingCartList()
End If
End Sub
================================================
其中PopulateShoppingCartList資料繫結購物明細到
DataGrid購物車以更新顯示:
================================================
Sub PopulateShoppingCartList()
Dim cart As ASPNET.StarterKit.Commerce.ShoppingCartDB = New
ASPNET.StarterKit.Commerce.ShoppingCartDB()
'取得使用者的shopping cart ID
Dim cartId As String = cart.GetShoppingCartId()
'若購物車無項目則顯示訊息
If cart.GetItemCount(cartId) = 0 Then
DetailsPanel.Visible = False
MyError.Text = "目前在您的購物車中沒有任何項目。"
Else
'資料繫結shoppingcart購物明細
MyList.DataSource = cart.GetItems(cartId)
MyList.DataBind()
'更新總金額
lblTotal.Text = String.Format("{0:c}", cart.GetTotal(
cartId))
End If
End Sub
================================================
其中ShoppingCartDB.vb的GetItems () 執行預存程序
CMRC_ShoppingCartList,取得購物車資料庫的資料:
================================================
Public Function GetItems(ByVal cartID As String) As
SqlDataReader'由Web.Config取得資料庫連線字串, 設定預存程序名稱
Dim myConnection As SqlConnection = New SqlConnection
(ConfigurationSettings.AppSettings("ConnectionString"))
Dim myCommand As SqlCommand = New SqlCommand("
CMRC_ShoppingCartList",myConnection)
'設定命令為預存程序
myCommand.CommandType = CommandType.StoredProcedure
'輸入預存程序輸入參數值
Dim parameterCartID As SqlParameter = New
SqlParameter("@CartID", SqlDbType.NVarChar, 50)
parameterCartID.Value = cartID
myCommand.Parameters.Add(parameterCartID)
'連線資料庫並執行預存程序
myConnection.Open()
Dim result As SqlDataReader = myCommand.ExecuteReader
(CommandBehavior.CloseConnection)
'傳回datareader結果
Return result
End Function
================================================
預存程序CMRC_ShoppingCartList,從CMRC_ShoppingCa
rt資料表中取得購物車記錄:
================================================
CREATE Procedure CMRC_ShoppingCartList
(
@CartID nvarchar(50)
)
AS
SELECT
CMRC_Products.ProductID, CMRC_Products.ModelName,
CMRC_Products.ModelNumber, CMRC_ShoppingCart.Quantity,
CMRC_Products.UnitCost,
Cast((CMRC_Products.UnitCost * CMRC_ShoppingCart.Quantity)
as money) as ExtendedAmount
FROM CMRC_Products, CMRC_ShoppingCart
WHERE CMRC_Products.ProductID = CMRC_ShoppingCart.ProductID
AND CMRC_ShoppingCart.CartID = @CartID
ORDER BY CMRC_Products.ModelName, CMRC_Products.ModelNumber
GO
================================================
--- 未完待續
|