22
專專專專專專 Table PC-2 專專 專專專 專專專 專專專 專專專

專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Embed Size (px)

DESCRIPTION

常用的 Streams 串流 Streams StreamReader(Text Reader) StreamWriter(TextWriter) FileStream NetworkStreams

Citation preview

Page 1: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

專題進度報告 Table PC-2

組員: 楊勝傑 范喻翔 陳琮凱 高國華

Page 2: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

分工Socket 部分

-- 陳琮凱 范喻翔TPC SDK -- 楊勝傑 高國華

Page 3: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

常用的 Streams 串流Streams

StreamReader(Text Reader)StreamWriter(TextWriter)

FileStream

NetworkStreams

Page 4: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

FileStream 的實作FileMode – Create , Open …

FileAccess – Read , Write , ReadWrite …

FileShared – Read , Write , ReadWrite …

Page 5: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

FileStream 與 NetworkStream 的互動

E:\music\Jolin\騎士精神 .mp3C:\test.mp3

Buffer Buffer

Server 端 Client 端Socket (NetworkStream)

FileStream.Read()

Socket.Read()

Networkstream.

Read()

FileStrea,.Write()

Page 6: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

傳送檔案的程式範例流程SERVER 輸入要傳送的檔案 開始接聽 使用 FileStream 來開啟檔案 傳送檔案大小給 Client

將開啟的檔案讀入 buffer 然後開始傳送給 client

當檔案讀完畢就將 Client 關閉 再將檔案串流關閉

CLIENT

跟 Server 建立連結 使用 FileStream 來創造檔案 接收檔案大小 使用者輸入要將檔案存在哪裡 將開啟的檔案讀入 buffer 然後開始傳送給 client

當檔案讀完畢就將 Client 關閉 再將檔案串流關閉

連接

socketForClient

FileStream

Page 7: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Source code--Server int bufferSize = 1024; Byte[] buffer = new Byte[bufferSize]; string inputName = @“C:\test.txt"; inputName = Console.ReadLine(); TcpListener tcpListener = new TcpListener(65000); tcpListener.Start(); Socket socketForClient; socketForClient = tcpListener.AcceptSocket();

if(socketForClient.Connected) { Console.WriteLine("Client Connected"); FileStream read = new FileStream(inputName, FileMode.Open); byte[] text = Encoding.UTF8.GetBytes(read.Length.ToString()); socketForClient.Send(text); while(read.Position < read.Length) { read.Read(buffer,0,bufferSize); socketForClient.Send(buffer,0,buffer.Length,0); } Console.WriteLine("Disconnecting from client"); socketForClient.Close(); Console.WriteLine("Exiting!!"); read.Close();

Page 8: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Source code--Client int bufferSize = 1024; Byte[] buffer = new Byte[bufferSize]; TcpClient socketForServer = new TcpClient("localhost",65000); string outputName = @“c:\temp.txt"; FileStream outputFile = new FileStream(outputName, FileMode.Create);

NetworkStream ns = socketForServer.GetStream(); int bytesRead = ns.Read(buffer, 0, bufferSize);

long size = Int32.Parse(Encoding.UTF8.GetString(buffer,0,bytesRead));

int aaa; while(size > 0) { aaa = bufferSize; if( size != bufferSize && size <=bufferSize) aaa = (int)size % bufferSize; int temp = ns.Read(buffer,0,aaa); outputFile.Write(buffer,0,temp); size -= temp; } ns.Flush(); ns.Close(); socketForServer.Close(); outputFile.Close();

Page 9: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Microsoft.Ink

Page 10: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Ink erase

Page 11: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Ink erase (cont.)

Page 12: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Ink Divider

Page 13: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Ink Divider (cont.)

Page 14: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Ink collector  實作

Page 15: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Source code

using Microsoft.Ink; The Ink namespace, which contains the Tablet PC Platform

APIImports Microsoft.Ink

InkCollector myInkCollector Declare the Ink Collector object

Page 16: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Source code private void DRAW_Click(object sender, System.EventArgs e) { DRAW.Checked=!DRAW.Checked; if(DRAW.Checked==true) { myInkCollector = new InkCollector(this.Handle); myInkCollector.DefaultDrawingAttributes.Width =

MediumInkWidth; myInkCollector.Enabled = true; menuItem5.Enabled=true; } else { myInkCollector.Enabled =false; menuItem5.Enabled=false; } }

Page 17: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

無線網卡設定 (BenQ)

Page 18: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Cont.

Page 19: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

Cont.

Page 20: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

網路設定 Tablet PC

Page 21: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

困難及未來規畫TPC

Socket

Page 22: 專題進度報告 Table PC-2 組員: 楊勝傑 范喻翔 陳琮凱 高國華. 分工 Socket 部分 -- 陳琮凱 范喻翔 TPC SDK -- 楊勝傑 高國華

謝謝大家