简单的java编写客户端服务器通讯注意事项

client  纯粹的客户端 具有 接受和发送两种功能

注意点:1 因为两种功能之间互相不干扰,因此其中一个必须放在独立的线程里。

2 因为接受以及发送都是一直不间断的 所以两者都必须放在死循环里

3 线程的start 不能放在另一个功能循环里,并且必须放在另一个循环之前(因为大家都是死循环,写在后面运行不到)

4 尽量不要多次实例化流,能提出来就提出来

server和customer  server是单纯的服务器 只需要具备接受客户端的功能 但是通过new对象跳转customer,本质上server和customer在一个主线程里。

通过customer来实现数据的转发

1 customer转发功能实质是 先接收A客户端发来的信息,然后把A信息中的ip单独取出来,用for遍历clients来查找匹配ip所对应的B客户端

再把A信息中的信息内容content发送给B

2 因为接受的服务器不止一个,因此customer中对数据的转发功能必须单独放进一个线程,否则会发生只能进一个客户端的情况。

3 接收转发的线程也需要把代码写在死循环里

release 将server socket bw br 四种东西的close方法提出来,并且重载调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,212评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,742评论 25 709
  • 姓名:楼灵芝 单位:杭州熙林服饰 【日精进打卡第76天】 【知~学习】 《六项精进》背诵3遍,共408遍; 《大学...
    心镜_8ef4阅读 1,180评论 0 0
  • 毛宗岗【读三国志法】 而绝伦超群者莫如云长。 名将如云, 历稽载籍, 关羽 民间无人不晓。字云长,后人尊称其为“关...
    玉天下阅读 2,682评论 0 0
  • 我长这么大有好多没有想明白的问题,这些问题一般我也不敢跟人交流,因为没什么结果还总被人问是不是有病。就比如说,我问...
    西岭xl阅读 1,792评论 0 0

友情链接更多精彩内容