读书人

点击文中的button后在socket连接不通

发布时间: 2013-08-04 18:26:16 作者: rapoo

点击文中的button后,在socket连接不通的情况下,所在的form窗体会假死。该如何解决此问题?
点击文中的button后,在socket连接不通的情况下,所在的form窗体会假死。该如何解决此问题?

    private void okBtn_Click(object sender, EventArgs e)
{
this.ip = ipTB.Text;
String port = portTB.Text;
this.path = textBox1.Text;
if (this.ip == "" || port == "" || this.path == "")
{
showLB1.Text = "ip,port和文件的输入框不能为空!";
showLB1.Refresh();
}
else
{
this.port = int.Parse(port);
try
{
lable:
//创建终结点EndPoint
IPAddress ipaddress = IPAddress.Parse(this.ip);
IPEndPoint ipe = new IPEndPoint(ipaddress, this.port);

//创建Socket并连接到服务器
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建Socket
showLB1.Text = "Connecting...";
showLB1.Refresh();


try
{
socket.Connect(ipe); //连接到服务器
showLB1.Text = "socket连接成功,准备接收数据...";
showLB1.Refresh();
}
catch (Exception ee)
{
showLB1.Text = "连接失败,正在重试,请稍后! ";
goto lable;
}
}

c# button Form假死
[解决办法]
改为异步或者加滚动条……
[解决办法]
开个线程专门处理Socket
[解决办法]
socket有他的异步方法
因为有阻塞,所以你界面卡主了
异步的话不等返回,程序会继续往下走
连接结果是在异步回调处理的好像

读书人网 >C#

热点推荐