C# Socket关闭开启功能问题

weixin_47256859 2021-01-13 10:05:25
这是关闭按钮对应的事件
/// <summary>
/// 关闭服务器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Code_Click(object sender, RoutedEventArgs e)
{

if (startandstop == false)
{
startandstop = true;
Start.IsEnabled = true;
Code.IsEnabled = false;
if (socketSend != null && socketSend.Connected)
{
socketSend.Shutdown(SocketShutdown.Both);
socketSend.Close();
socketWatch.Close();
disSocket.Clear();
}
}
timer_2.Stop();
}

这个是开启按钮的事件
Thread th;
/// <summary>
/// 开启服务,监听连接
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
bool startandstop = true;
private void Start_Click(object sender, RoutedEventArgs e)
{

if (startandstop)
{
startandstop = false;
Start.IsEnabled = false;
Code.IsEnabled = true;
}
Startsocket();
th = new Thread(ListenClickConnect);
th.IsBackground = true;
th.Start(socketWatch);
timer_2.Start();
}

当有客户端连接的时候可以正常使用不会报错,没有连接的时候点击开启正常,关闭正常,再开启就报错“通常一套字节只允许使用一次”
有没有大佬帮忙看看调整一下
...全文
1391 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gs0038 2021-01-13
  • 打赏
  • 举报
回复
说明你没有关闭socket
weixin_47256859 2021-01-13
  • 打赏
  • 举报
回复
引用 楼主 weixin_47256859 的回复:
这是关闭按钮对应的事件
/// <summary>
        /// 关闭服务器
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Code_Click(object sender, RoutedEventArgs e)
        {

            if (startandstop == false)
            {
                startandstop = true;
                Start.IsEnabled = true;
                Code.IsEnabled = false;
                if (socketSend != null && socketSend.Connected)
                {
                    socketSend.Shutdown(SocketShutdown.Both);
                    socketSend.Close();
                    socketWatch.Close();
                    disSocket.Clear();
                }
            }
            timer_2.Stop();
        }
这个是开启按钮的事件
Thread th;
        /// <summary>
        /// 开启服务,监听连接
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        bool startandstop = true;
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            
            if (startandstop)
            {
                startandstop = false;
                Start.IsEnabled = false;
                Code.IsEnabled = true;
            }
            Startsocket();
            th = new Thread(ListenClickConnect);
            th.IsBackground = true;
            th.Start(socketWatch);
            timer_2.Start();
        }
当有客户端连接的时候可以正常使用不会报错,没有连接的时候点击开启正常,关闭正常,再开启就报错“通常一套字节只允许使用一次” 有没有大佬帮忙看看调整一下
在判断下面加else再close
weixin_47256859 2021-01-13
  • 打赏
  • 举报
回复
已经解决了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧