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);

  • 相关阅读:
    windows常规
    oracle常规操作
    idea使用
    java-maven
    java-rabbimq
    centos7 rabbitMq 安装教程
    Leetcode 332.重新安排行程
    Leetcode 334.递增的三元子序列
    Leetcode 331.验证二叉树的前序序列化
    Leetcode 330.按要求补齐数组
  • 原文地址:https://www.cnblogs.com/liuslayer/p/8394831.html
Copyright © 2011-2022 走看看