socket基本运用和踩过的坑

作者: Helloword_Cc | 来源:发表于2019-03-30 09:48 被阅读0次

    socket可以用来传输信息,如我们经常通讯用到的聊天室,网关向某ip端口发送信息等等。

    通讯一般情况分为两端,客户端和服务端。客户端负责发送消息到服务端。服务端接受消息展示。此篇着重讲解一下服务端接受消息遇到的坑。

    先简单讲解一下客户端发送给服务器的代码

    发送的信息byte,服务器的ip,port生成DatagramPacket,再通过DatagramPacket发送。

    结束,讲解一下服务端接收

    作者服务端监听8087端口,其中accept方法会进行监听,如果未监听到信息会一直阻塞,直到监听有数据再继续向下执行。

    监听到有数据后肯定会继续循环再次监听,但一次循环过后需要关闭连接,否则会报错。

    在最后一步的时候用close关闭连接。好了,坑就在关闭连接上。因为socket监听会超时,如果超时的话socket会自动关闭连接,如果在超时的情况最后finally的时候还继续关闭连接,就会出现问题。所以我们需要在关闭连接的时候,测试socket是否断开

    我们在关闭之前,用socket发送一个字节的数据。如果发送不成功会报错异常,证明socket已经关闭。如果成功则证明未关闭,这个时候我们再去关闭socket的连接。

    相关文章

      网友评论

        本文标题:socket基本运用和踩过的坑

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