?? form1.cs
字號(hào):
?using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace Sender
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
IrDAClient irClient = new IrDAClient();
//定制服務(wù)的名稱
string irServiceName = "IrDATest";
IrDADeviceInfo[] irDevices;
int buffersize = 256;
// 首先查找紅外網(wǎng)絡(luò)里面的設(shè)備
irDevices = irClient.DiscoverDevices(2);
// 顯示找到的第一個(gè)設(shè)備
if ((irDevices.Length == 0))
{
MessageBox.Show("No remote infrared devices found.");
return;
}
try
{
IrDAEndPoint irEndP =
new IrDAEndPoint(irDevices[0].DeviceID, irServiceName);
IrDAListener irListen = new IrDAListener(irEndP);
irListen.Start();
irClient = irListen.AcceptIrDAClient();
MessageBox.Show("Connected!");
}
catch (SocketException exSoc)
{
MessageBox.Show(("Couldn\'t listen on service "
+ (irServiceName + (": " + exSoc.ErrorCode))));
}
// 打開一個(gè)文件用于發(fā)送
Stream fs;
try
{
//請(qǐng)首先在設(shè)備的My Documents文件夾下面放置一個(gè)send.txt文件用于發(fā)送
fs = new FileStream(".\\My Documents\\send.txt", FileMode.Open);
}
catch (Exception exFile)
{
MessageBox.Show(("Cannot open " + exFile.ToString()));
return;
}
// 獲得IrDAClient對(duì)象的數(shù)據(jù)流
Stream baseStream = irClient.GetStream();
// 首先獲得這個(gè)文件的長(zhǎng)度
byte[] length = BitConverter.GetBytes(fs.Length);
//把這個(gè)文件的長(zhǎng)度寫到流中去
baseStream.Write(length, 0, length.Length);
// 建立緩沖區(qū)用于讀取文件
byte[] buffer = new byte[buffersize];
int fileLength = (int)fs.Length;
try
{
// 將文件流讀入IrDAClient的數(shù)據(jù)流
while ((fileLength > 0))
{
Int64 numRead = fs.Read(buffer, 0, buffer.Length);
baseStream.Write(buffer, 0, Convert.ToInt32(numRead));
fileLength = (fileLength - Convert.ToInt32(numRead));
}
MessageBox.Show("File sent");
}
catch (Exception exSend)
{
MessageBox.Show(exSend.Message);
}
//關(guān)閉文件流,以及IrDAClient的數(shù)據(jù)流。最后關(guān)閉IrDAClient對(duì)象。
fs.Close();
baseStream.Close();
irClient.Close();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -