美文网首页
001 socket通信

001 socket通信

作者: 六道Peter | 来源:发表于2022-08-26 08:38 被阅读0次

    socket原理,

    https://www.jianshu.com/p/c44f556de0dd

    网络连接已中断。

    https://docs.microsoft.com/zh-cn/dotnet/api/system.net.webexceptionstatus?view=netframework-4.8

    常见的socket出错总结

    https://blog.csdn.net/epeaktop/article/details/48714435

    socek 返回的code码

    https://blog.csdn.net/zilaike/article/details/78227819

    使用pod导入swift库,pod会帮我们自动设置桥接文件配置,不需要我们自己再配置了,但我发现即使项目中中有我们自己设置的桥接文件,也不会影响swift三方库的使用,

    pod 'Socket.IO-Client-Swift','15.2.0'

    二、TCP的三次握手和四次挥手

    分析 : SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。

    2、为什么客户端还要做最后一次确认呢 ?

    一句话,主要防止已经失效的连接请求报文突然又传送到了服务器,从而产生错误。

    如果使用的是两次握手建立连接,假设有这样一种场景,

    客户端发送了第一个请求连接并且没有丢失,只是因为在网络结点中

    滞留的时间太长了,由于TCP的客户端迟迟没有收到确认报文,

    以为服务器没有收到,此时重新向服务器发送这条报文,

    此后客户端和服务器经过两次握手完成连接,传输数据,然后关闭连接。

    此时此前滞留的那一次请求连接,网络通畅了到达了服务器,这个报文本该是失效的,

    但是,两次握手的机制将会让客户端和服务器再次建立连接,

    这将导致不必要的错误和资源的浪费。

    如果采用的是三次握手,就算是那一次失效的报文传送过来了,

    服务端接受到了那条失效报文并且回复了确认报文,

    但是客户端不会再次发出确认。由于服务器收不到确认,

    就知道客户端并没有请求连接。

    原文链接:https://blog.csdn.net/qq_18505715/article/details/51043046

    SocketIO接收中文乱码

    SocketIOClientConfiguration参数中

            switch (key, value) {

            case let ("connectParams", params as [String: Any]):

                return .connectParams(params)

            case let ("cookies", cookies as [HTTPCookie]):

                return .cookies(cookies)

            case let ("extraHeaders", headers as [String: String]):

                return .extraHeaders(headers)

            case let ("forceNew", force as Bool):

                return .forceNew(force)

            case let ("forcePolling", force as Bool):

                return .forcePolling(force)

            case let ("forceWebsockets", force as Bool):

                return .forceWebsockets(force)

            case let ("handleQueue", queue as DispatchQueue):

                return .handleQueue(queue)

            case let ("log", log as Bool):

                return .log(log)

            case let ("logger", logger as SocketLogger):

                return .logger(logger)

            case let ("path", path as String):

                return .path(path)

            case let ("reconnects", reconnects as Bool):

                return .reconnects(reconnects)

            case let ("reconnectAttempts", attempts as Int):

                return .reconnectAttempts(attempts)

            case let ("reconnectWait", wait as Int):

                return .reconnectWait(wait)

            case let ("reconnectWaitMax", wait as Int):

                return .reconnectWaitMax(wait)

            case let ("randomizationFactor", factor as Double):

                return .randomizationFactor(factor)

            case let ("secure", secure as Bool):

                return .secure(secure)

            case let ("security", security as SSLSecurity):

                return .security(security)

            case let ("selfSigned", selfSigned as Bool):

                return .selfSigned(selfSigned)

            case let ("sessionDelegate", delegate as URLSessionDelegate):

                return .sessionDelegate(delegate)

            case let ("compress", compress as Bool):

                return compress ? .compress : nil

            case let ("enableSOCKSProxy", enable as Bool):

    套接字设置不同导致的乱码

    ç\U0000009b´æ\U00000092­å\U00000086\U00000085容å\U0000008c\U00000085å\U00000090«ä»»ä½\U00000095ä½\U0000008eä¿\U00000097ã\U00000080\U00000081æ\U0000009a´é\U0000009c²å\U00000092\U0000008cæ¶\U00000089é»\U00000084å\U00000086\U00000085容ï¼\U0000008cè´¦å\U0000008f·ä¼\U0000009a被å°\U00000081ç¦\U00000081ï¼\U0000009bå®\U00000089å\U00000085¨é\U00000083¨é\U00000097¨ä¼\U0000009a24å°\U0000008fæ\U00000097¶å·¡æ\U0000009f¥å\U00000093¦ï½\U0000009e" 0x000060000144c540

    相关文章

      网友评论

          本文标题:001 socket通信

          本文链接:https://www.haomeiwen.com/subject/pckogrtx.html