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;
}
}
5 个解决方案
#1
用非阻塞模式,或者把socket操作放到异步中
#2
改为异步或者加滚动条……
#3
能写点代码指导么,谢谢!本人是很新的新手
#4
开个线程专门处理Socket
#5
socket有他的异步方法
因为有阻塞,所以你界面卡主了
异步的话不等返回,程序会继续往下走
连接结果是在异步回调处理的好像
因为有阻塞,所以你界面卡主了
异步的话不等返回,程序会继续往下走
连接结果是在异步回调处理的好像
#1
用非阻塞模式,或者把socket操作放到异步中
#2
改为异步或者加滚动条……
#3
能写点代码指导么,谢谢!本人是很新的新手
#4
开个线程专门处理Socket
#5
socket有他的异步方法
因为有阻塞,所以你界面卡主了
异步的话不等返回,程序会继续往下走
连接结果是在异步回调处理的好像
因为有阻塞,所以你界面卡主了
异步的话不等返回,程序会继续往下走
连接结果是在异步回调处理的好像