zoukankan      html  css  js  c++  java
  • socket技术难点

    1、使用socket建立连接后,客户端和服务端只要有一方使用close()或者dispose()关闭连接,对端在发送或接收时都会抛出异常:远程主机强迫关闭了一个现有的连接。
    2、使用TcpClient建立连接后,当客户端在TcpClient实例上调用close()方法,或者在流上调用dispose()方法时:
    (1)服务端调用read()方法会持续返回0,但不会抛出异常,所以会产生无限循环,需要break出循环;
    (2)服务端调用write()方法会抛出异常:无法将数据写入传输连接: 您的主机中的软件中止了一个已建立的连接。。
    (3)如果直接关闭掉客户端,或者客户端执行完毕没有调用stream.dispose()或者TcpClient.Close(),则在调用read()方法时会抛出异常: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。
    3、使用TcpClient建立连接后,当服务端在TcpClient实例上调用close()方法,或者在流上调用dispose()方法时:
    (1)客户端调用write()方法会抛出异常:无法将数据写入传输连接: 您的主机中的软件中止了一个已建立的连接。。
    (2)如果直接关闭掉服务端,则调用write()方法会抛出异常:无法将数据写入传输连接: 远程主机强迫关闭了一个现有的连接。。
    4、创建udp广播套接字需要调用SetSocketOption,否则会抛出一场错误。udpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);

  • 相关阅读:
    Logstash在Linux上安装部署
    Kafka在Linux上安装部署及样例测试
    Kibana在Linux上安装部署及使用说明
    第12组 Alpha冲刺(4/6)
    第12组 Alpha冲刺(3/6)
    第12组 Alpha冲刺(2/6)
    第12组 Alpha冲刺(1/6)
    第12组 团队Git现场编程实战
    第12组 团队项目-需求分析报告
    团队项目-选题报告
  • 原文地址:https://www.cnblogs.com/liuslayer/p/8394831.html
Copyright © 2011-2022 走看看