Upload
clarissa-matthews
View
278
Download
0
Embed Size (px)
DESCRIPTION
常用的 Streams 串流 Streams StreamReader(Text Reader) StreamWriter(TextWriter) FileStream NetworkStreams
Citation preview
專題進度報告 Table PC-2
組員: 楊勝傑 范喻翔 陳琮凱 高國華
分工Socket 部分
-- 陳琮凱 范喻翔TPC SDK -- 楊勝傑 高國華
常用的 Streams 串流Streams
StreamReader(Text Reader)StreamWriter(TextWriter)
FileStream
NetworkStreams
FileStream 的實作FileMode – Create , Open …
FileAccess – Read , Write , ReadWrite …
FileShared – Read , Write , ReadWrite …
FileStream 與 NetworkStream 的互動
E:\music\Jolin\騎士精神 .mp3C:\test.mp3
Buffer Buffer
Server 端 Client 端Socket (NetworkStream)
FileStream.Read()
Socket.Read()
Networkstream.
Read()
FileStrea,.Write()
傳送檔案的程式範例流程SERVER 輸入要傳送的檔案 開始接聽 使用 FileStream 來開啟檔案 傳送檔案大小給 Client
將開啟的檔案讀入 buffer 然後開始傳送給 client
當檔案讀完畢就將 Client 關閉 再將檔案串流關閉
CLIENT
跟 Server 建立連結 使用 FileStream 來創造檔案 接收檔案大小 使用者輸入要將檔案存在哪裡 將開啟的檔案讀入 buffer 然後開始傳送給 client
當檔案讀完畢就將 Client 關閉 再將檔案串流關閉
連接
socketForClient
FileStream
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();
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();
Microsoft.Ink
Ink erase
Ink erase (cont.)
Ink Divider
Ink Divider (cont.)
Ink collector 實作
Source code
using Microsoft.Ink; The Ink namespace, which contains the Tablet PC Platform
APIImports Microsoft.Ink
InkCollector myInkCollector Declare the Ink Collector object
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; } }
無線網卡設定 (BenQ)
Cont.
Cont.
網路設定 Tablet PC
困難及未來規畫TPC
Socket
謝謝大家