整了好几天发现还是有点问题,发送文件的时候不能选择想要存放文件的地址,让我郁闷!如有高人希望指点!
红色字体处,设置文件保存位置,我想用
SaveFileDialog sfd = new SaveFileDialog();
//弹出文件保存选择框
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{}
这段代码修改保存的地址,可是报了个错误,只能在单线程中使用。。。。没有改成功。。。
Form窗体中的程序:资源里有成品http://download.csdn.net/detail/small5e4444/3701539
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.Threading;
using System.IO;
namespace BroadcastExample
{
public partial class Form1 : Form
{
delegate void AppendStringCallback(string text);//创建委托 给窗体控件
AppendStringCallback appendStringCallback;
delegate void AppendStringCallback_combox(string text);//创建委托 给窗体控件
AppendStringCallback_combox appendStringCallback_combox;
//使用的接收端口号
private int receivePort = 40000;
private UdpClient receiveUDP;
string selfIP = "";//自己的IP
string[] allIp;//= new string[100];//所有IP
string[] allName;//= new string[100];//所有用户名
System.Net.IPAddress[] addressList;//获取本地IP
Thread receiveThread;//收信 线程
//-------------------------------------监听用
private Thread ListenThread = null;
private Thread GetFileThread = null;
private string filepath = null;
private TcpListener tcplistener = null;
private TcpClient tcpclient = null;
public Form1()
{
InitializeComponent();
appendStringCallback = new AppendStringCallback(AppendString);
appendStringCallback_combox = new AppendStringCallback_combox(AppendString_1);
}
private void Form1_Load(object sender, EventArgs e)
{
//---------------------------------------------------------开启 监听
try
{
IPAddress[] ipaddresses = Dns.GetHostAddresses(Dns.GetHostName());
tcplistener = new TcpListener(ipaddresses[0], 8888);
tcplistener.Start();
}
catch (Exception E)
{
MessageBox.Show(E.Message);
this.Dispose();
}
ListenThread = new Thread(new ThreadStart(Listen));
ListenThread.Start();
//---------------------------------------------------------
receiveThread = new Thread(new ThreadStart(ReceiveData));//启动 收信息的线程
//将线程设为后台运行
receiveThread.IsBackground = true;
receiveThread.Start();
allIp = new string[100];//所有IP
allName = new string[100];//所有用户名
addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;//获取自己的IP
selfIP = addressList[0].ToString();
if (addressList.Length > 1)
{
//textBox1.Text = addressList[0].ToString();
//textBox2.Text = addressList[1].ToString();
}
else