socket基本运用和踩过的坑

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

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

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

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、TCP状态linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lso...
    北辰青阅读 9,551评论 0 11
  • 计算机网络概述 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。 按照计算机网络的定义,通过一定...
    蛋炒饭_By阅读 1,258评论 0 10
  • 一、网络通信协议 定义:对数据的传输格式、传输效率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换,...
    聂叼叼阅读 525评论 0 2
  • e今天来谈谈胆固醇,哈哈! 胆固醇常被人们称为脂肪,其实它是一种重量级的乙醇分子。它像脂肪一样,不溶于水和血液。人...
    Janetff阅读 351评论 0 1
  • 家是容器,里面的一物一摆设就是你思想的反光镜。你是否是一个有趣的灵魂,在家具的陈列摆设、家里的日常外貌就可以看出来...
    紫馨雅馨阅读 213评论 0 0