private void Transfer(ObexTransferObject obj) { ObexWebResponse rsp = null; ObexWebRequest req; try { Uri uri = new Uri("obex://" + obj.Target.address.ToString() + "/" + obj.Filename); req = new ObexWebRequest(uri); req.Timeout = 15000; using (Stream content = req.GetRequestStream()) { content.Write(obj.Data, 0, obj.Data.Length); content.Flush(); req.ContentLength = obj.Data.Length; req.ContentType = obj.MimeType; } rsp = (req.GetResponse() as ObexWebResponse); } catch (Exception e) { General.WriteLogLine(e.GetType().Name + " while transferring '" + obj.Filename + "' data to " + obj.Target.address.ToString() + ": " + e.Message); } if ((rsp != null) && (rsp.StatusCode != ObexStatusCode.OK)) { General.WriteLogLine("Received response code: " + rsp.StatusCode + " while transferring '" + obj.Filename + "' data to " + obj.Target.address.ToString()); } if (rsp != null) { rsp.Close(); } }
private void btnBeam_Click(object sender, System.EventArgs e) { if (cbDevices.SelectedIndex > -1) { IrDADeviceInfo idi = (IrDADeviceInfo)cbDevices.SelectedItem; if (ofdFileToBeam.ShowDialog() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; System.Uri uri = new Uri("obex://" + idi.DeviceAddress.ToString() + "/" + System.IO.Path.GetFileName(ofdFileToBeam.FileName)); ObexWebRequest request = new ObexWebRequest(uri); Stream requestStream = request.GetRequestStream(); FileStream fs = File.OpenRead(ofdFileToBeam.FileName); byte[] buffer = new byte[1024]; int readBytes = 1; while (readBytes != 0) { readBytes = fs.Read(buffer, 0, buffer.Length); requestStream.Write(buffer, 0, readBytes); } requestStream.Close(); ObexWebResponse response = (ObexWebResponse)request.GetResponse(); MessageBox.Show(response.StatusCode.ToString()); response.Close(); Cursor.Current = Cursors.Default; } } }