【发布时间】:2017-01-18 20:56:12
【问题描述】:
我有一个带有两个按钮的表单,首先是开始监听套接字,并显示带有地址的消息框,从该地址发送消息。第二个按钮用于将消息发送到我按下收听按钮时收听的地址。我正在尝试绑定发送的套接字。例如,我想从端口 50000 发送它。我正在使用Bind 方法,但它只在第一次工作,而不是异常成为,该地址通常只能使用一次,我需要再次重新打开我的表单。我怎么解决这个问题 ?这是我的发送代码:
private void button2_Click(object sender, EventArgs e)
{
string local_host = System.Net.Dns.GetHostName();
string local_ip_address = Dns.GetHostByName(local_host).AddressList[0].ToString();
IPEndPoint send_point = new IPEndPoint(IPAddress.Parse(local_ip_address), 50000);
Socket send_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint connected_point = new IPEndPoint(IPAddress.Parse(textBoxIPListen.Text),
Convert.ToInt32(textBoxPortListen.Text));
try
{
send_socket.Bind(send_point);
send_socket.Connect(connected_point);
byte[] data = Encoding.Unicode.GetBytes("TestTest");
send_socket.Send(data);
send_socket.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
【问题讨论】: