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

     2022-05-07     785

关键词:

      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。这也是我们做团队项目的目的之一吧。

 

javasocket

转载自并发编程网–ifeve.com本文链接地址:Java网络教程之SocketJava网络教程-基础 Java提供了非常易用的网络API,调用这些API我们可以很方便的通过建立TCP/IP或UDP套接字,在网络之间进行相互通信,其中TCP要比UDP更加常用,但在本教... 查看详情

javasocket底层是怎样基于tcp/ip实现的???

首先必须明确:TCP/IP模型中有四层结构:     应用层(ApplicationLayer)、传输层(Transport Layer)、网络层(InternetLayer )、链路层(LinkLayer) 其中Ip协议(InternetProtocol)是位于网络层的,TCP协议时位... 查看详情

javasocket通信

...-响应模式 a.客户端       在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序 b.服务端       查看详情

javasocket通信之客户端程序发送和接收数据(代码片段)

 JavaSocket通信(一)之客户端程序发送和接收数据网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据。对... 查看详情

loki学习总结——loki中小项目日志系统的不二之选(代码片段)

前言项目做正规了,日志系统是少不了的,目前大部分日志平台推荐基于ELK构建,不过ELK算是比较重了,架构太大,中小项目不太好Hold住,希望找一款简单一些的,如果实在找不到再上ELK,这个时... 查看详情

javasocket学习

socket服务端编写之BIO网络学习1packagecom.example.demo.bio;23importjava.io.IOException;4importjava.net.ServerSocket;5importjava.net.Socket;67/**8*@Author:Lambert9*@Date:2019-01-0700:3710*@Description:11*/12publi 查看详情

javasocket基于tcp/ip协议

Javasocket基于TCP/IP协议应用多线程服务器原理:1、         服务器端创建serversocket并绑定要监听的端口号,循环调用serversoket的accept()方法,等待客户端的连接请求2、       &... 查看详情

javasocket编程以及与linuxsocketapi关系

Socket编程(基于Linux)Socket独立于具体协议的网络编程接口,在ISO模型中,主要位于会话层和传输层之间;在通用的计算机网络五层模型中,主要位于应用层和传输层之间。LinuxSocket基本上就是BSDSocket需要使用的头文件数据类型:#in... 查看详情

日志系统之基于flume收集docker容器日志

最近我在日志收集的功能中加入了对docker容器日志的支持。这篇文章简单谈谈策略选择和处理方式。关于docker的容器日志docker我就不多说了,这两年火得发烫。最近我也正在把日志系统的一些组件往docker里部署。很显然,组件跑... 查看详情

javaweb项目架构之kafka分布式日志队列

架构、分布式、日志队列,标题自己都看着唬人,其实就是一个日志收集的功能,只不过中间加了一个Kafka做消息队列罢了。kafka介绍Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的... 查看详情

javasocket底层是怎样基于tcp/ip实现的

  首先必须明确:TCP/IP模型中有四层结构:应用层(ApplicationLayer)、传输层(TransportLayer)、网络层(InternetLayer)、链路层(LinkLayer)其中Ip协议(InternetProtocol)是位于网络层的,TCP协议时位于传输层的。通过Ip协议可以使可... 查看详情

日志系统之基于zookeeper的分布式协同设计

近期这段时间在设计和实现日志系统。在整个日志系统系统中Zookeeper的作用非常重要——它用于协调各个分布式组件并提供必要的配置信息和元数据。这篇文章主要分享一下Zookeeper的使用场景。这里主要涉及到Zookeeper在日志系统... 查看详情

javasocket—网络连接(代码片段)

JavaSocket—网络连接1.概念网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket也就是套接字,可以用来实现不同虚拟机或者不同计算机之间的通信。在Java语言中,Socke... 查看详情

javasocket编程

申明:本文摘自:http://www.cnblogs.com/rocomp/p/4790340.htmlJava最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用... 查看详情

你只会用javasockets?推荐11个开源的javasocket框架

来源:csdn.net/xiaojin21cen/article/details/78587425ZeroCICE的Java版,Netty2作者的后续之作ApacheMINA,Crmky的Cindy之外,还有个超简单的QuickServer,让你专心编写自己的业务代码,不用编写一行TCP代码。1、QuickServer一个免... 查看详情

javasocket通讯

本来是打算验证javasocket是不是单线程操作,也就是一次只能处理一个请求,处理完之后才能继续处理下一个请求。但是在其中又发现了许多问题,在编程的时候需要十分注意,今天就拿出来跟大家分享一下。首先先建立一个服... 查看详情

javasocket实战之六使用nio包实现socket通信(代码片段)

本文地址:http://blog.csdn.net/kongxx/article/details/7288896JavaSocket实战之一单线程通信JavaSocket实战之二多线程通信JavaSocket实战之三传输对象JavaSocket实战之四传输压缩对象JavaSocket实战之五使用加密协议传输对象前面几篇文章介绍了... 查看详情

日志系统之基于flume收集docker容器日志(代码片段)

最近我在日志收集的功能中加入了对docker容器日志的支持。这篇文章简单谈谈策略选择和处理方式。关于docker的容器日志docker我就不多说了,这两年火得发烫。最近我也正在把日志系统的一些组件往docker里部署。很显然,... 查看详情