• 项目日志之基于Java socket的网络通讯


          Java API网络类包中的Socket类是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。我们打算通过Java中基于Socket的网络编程实现一个简单的网络通信程序。这就是我们团队项目(开发一款简单的通讯软件,其基本功能是实现一对一的网络信息通讯,并努力向一对多和多对多靠近)的主要内容。

    Java socket通信开发原理(查阅资料):

    服务器使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

    客户端使用Java socket通信对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

        二.系统工作大概过程:

    当服务器端每接受到一个客户端的连接请求之后,都把处理流程放到多线程中某一个独立的线程里去运行,然后等待下一个客户端发出连接请求,这样就不会阻塞服务器端接收请求了。每个独立运行的程序在使用完Socket对象之后要将其关闭。这样就实现了多线程socket通信。

    三.编程需要注意的问题:

      1、确定长连接和短连接以及它们应用的具体场合。所谓的长连接是指一经建立就永久保持的连接方式。短连接则是准备数据,建立连接,发送数据和关闭连接。在我们的项目中,在网络通讯的交流环节应该是使用短连接;

    3、优先使用多线程技术。多线程是在程序执行过程中,系统允许中同时执行多个指令,而这些指令互不干扰,在我们的设想中,我们的项目(开发一款简单的通讯软件,其基本功能是实现一对一的网络信息通讯,并努力向一对多和多对多靠近)中,多线程技术对于多方交流就是一个绝佳的配合。

    四.个人感悟

    基于Java Socket的网络通讯涉及的主要知识点和技术就是网络通讯和多线程,剩下的就是Java知识的基本功了,同时,网络通讯又同时需要服务器端和客户端的共同配合,所以,上述两者同等重要,谁也离不开谁。我们选择基于Java socket的网络通讯,一方面是因为Java socke的强大和其便捷之处;另一方面,我们认为现在主流的软件开发语言是Java,所以,我们想更熟练地学会使用Java。这也是我们做团队项目的目的之一吧。

  • 相关阅读:
    菜鸟版JAVA设计模式—从买房子看代理模式
    NTP工作机制及时间同步的方法
    Java工厂模式
    圣魔大战3(Castle Fantisia)艾伦希亚战记完美攻略
    对javabean的内省操作
    插入排序(insertion sort)
    中英文对照 —— 十二星座
    中英文对照 —— 十二星座
    数学归纳法的相关证明
    数学归纳法的相关证明
  • 原文地址:https://www.cnblogs.com/lqshh/p/5352484.html
Copyright © 2020-2023  润新知