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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目日志之基于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 socket的网络通讯的主要内容,如果未能解决你的问题,请参考以下文章

Java网络编程之TCP网络编程

基于Socket的低层次Java网络编程

Java网络编程基础-- 基于TCP/IP的Socket编程

Java开发之Socket编程详解

Java基础知识强化之网络编程笔记24:Android网络通信之 AndroidAsync(基于nio的异步通信库)

Java NIO之网络编程