Java 网络程序

Docker网络上篇-深入了解Java应用程序的网络通信 无论是与外部服务进行交互,还是在分布式系统中进行内部通信,了解如何在Java应用程序中处理网络通信是非常重要的。Docker是一个流行的容器化平台,它允许开发人员将应用程序及其依赖项打包到一个独立的容器中。接下来,我们将编写一个简单的Java应用程序,演示如何在Docker容器中进行网络通信。我们将创建两个容器,一个作为服务器,另一个作为客户端。接下来,我们将编写一个简单的Java应用程序,示范如何在Docker容器中进行网络通信。在开始之前,我们需要创建一个Docker网络,以便在容器之间进行通信。 阅读详情
    Java在网络编程这个地方做的很好,java的主要目的也是为了网络而生的,它能方便的访问网络上的资源。我们这节课来介绍网络通讯的两种机制:URL通信机制,Socket通信机制。
URL表示了Internet上一个资源的引用或地址。Java网络应用程序也是使用URL来定位要访问的Internet的资源。在jdk里面java.net.URL也是一个类,它来封装URL的一些细节。目前大家可以把URL理解为网址,http://www.100jq.com/default.aspx 这就是个URL。http是协议名(超文本传输协议)用“://”隔开www.100jq.com 是主机名。Default.aspx是文件名。它的端口号没有写,默认是80。
实践:
import java.net.*;
public class ParseURL {
public static void main(String[] args) throws MalformedURLException{
URL url = new URL("http://www.100jq.com:45175/default.aspx");
System.out.println("协议是 "+url.getProtocol());
System.out.println("主机是 "+url.getHost());
System.out.println("文件名是 "+url.getFile());
System.out.println("端口号是 "+url.getPort());
}}
/*
URL这个对象中提供了很多方法像是
getProtocol()
getHost()
getFile()
getPort()
*/
我们可以通过URL对文件或资源读取,也可以通过URLConnection读取,也可以通过这个写入数据限于cgi脚本。
实践:
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws IOException {
URL google = new URL("http://www.100jq.com/");
URLConnection g = google.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(g.getInputStream()));
String inputLine;
while ((inputLine=in.readLine())!=null)
System.out.println(inputLine);
in.close();
}
}
URL和URLConnection类提供了较高层次的网络访问。有时候需要进行较低层次的访问。编写C/S模型的程序时,就要使用Socket通信机制了。因为在网络上不一定非得访问文件。
实践://先写个客户端的应用
import java.net.*;
import java.io.*;
public class SimpleClient {
public static void main(String args[]) {
try {
// 在5432端口打开服务器连接
// 在这里用localhost与127.0.0.1是一个意思
Socket s1 = new Socket("127.0.0.1", 5432);
// 对这个端口连接一个reader,注意端口不能够占用别的
BufferedReader br = new BufferedReader(
new InputStreamReader(s1.getInputStream()));
// 读取输入的数据并且打印在屏幕上
System.out.println(br.readLine());
//当完成时关闭流和连接
br.close();
s1.close();
} catch (ConnectException connExc) {
System.err.println("Could not connect to the server.");
} catch (IOException e) {
// ignore
}}}
//这是服务端的应用
import java.net.*;
import java.io.*;
public class SimpleServer {
public static void main(String args[]) {
ServerSocket s = null;
// 注册服务端口为5432
try {
s = new ServerSocket(5432);
} catch (IOException e) {
e.printStackTrace();
}
// 运行监听器并接收,永远循环下去。因为服务器总要开启的
while (true) {
try {
// 等待一个连接的请求
Socket s1 = s.accept();
// 得到端口的输出流
OutputStream s1out = s1.getOutputStream();
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(s1out));
// 发送一个字符串
bw.write("百家拳软件项目研究室欢迎您!/n");
// 关闭这个连接, 但不是服务端的socket
bw.close();
s1.close();
} catch (IOException e) {
e.printStackTrace();
}}}}


执行这个程序和其它的不太一样,先用javac将两个文件编译之后。然后敲start开启另一个窗口。用start命令开启的窗口继承了原来窗口的特性。如图26-1所示
图26-1
接着在原来的窗口上执行服务端程序java SimpleServer.在新窗口中执行java SimpleClient 就会看到结果了。注意如果如果在启动服务端的时候抛出bindException则说明5432这个端口已经被别的程序占用着,改成别的端口号就可以了。通常选用端口的时候,其数字最好不要小于1024,1024一下的端口很多都是专用的端口。

Windows下的Geant4安装教程 本教程将从0开始展示在Windows下如何安装Geant4,包括各种辅助工具(QT、Cmake、Visual Studio)的下载安装,环境变量的配置,以及example的生成等。 阅读详情

相关推荐

实测有效防止colab自动断开连接

实测有效防止colab自动断开连接

Thebest_jack的博客 1万+

java网络编程(详解)

网络在通信协议下,不同计算机上运行的程序,进行的数据传输应用场景:即时通信,网游对战,金融证券,国际贸易,邮件等等不管什么场景,本质上都是计算机跟计算机之间通过网络进行数据传输java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。

小林的博客 6317

GD32F103入门实践(一)配置环境,搭建工程模板,烧写程序

写在前面 本系列博客是我初学GD32F103的操作实录,我个人是个小白,在学习过程中真的也遇到了不少坑,因此我希望能记录下来,帮助到同样踩坑的你。 我的芯片是GD32F103ZE,软件是Keil,烧写用的是JLink。 材料准备 首先我在兆易创新官网(兆易创新),下载相关的文件。点击资料下载,在搜索框里输入“GD32F10”可以得到相关的资料,其他芯片类似。比较重要的是GD32F10x AddOn和GD32F10x Firmware Library(固件库),这两个必须下载。 下载Keil MDK5,这

qq_41208487的博客 3万+

Java 网络编程(大全)

浏览器就是我们日常使用的浏览器去访问各种网站,只要有浏览器就可以访问,不依赖特定的PC端,在任意设备上都可以访问网站服务器。不需要建立连接(因为把数据源IP、目的地IP、端口封装成数据包),每个数据包在64KB内,只管发,不管对方有没有接到确认什么的。IP地址可以理解为具体哪个计算机,端口理解计算机上的程序(一个程序一个端口),协议理解为电脑通过什么方式和外界交互。客户端是需要程序员去开发的,例如日常使用的各种的APP,服务端就是服务器。一、2请分析C/S和B/S架构相比的各自的优缺点?

快乐学习 1万+

如何利用VS2017创建一个简单的窗口

#如何利用VS2017创建一个简单的窗口 1、新建->Windows桌面向导 2、应用程序类型->桌面应用程序,点击确定 3、点击调试->开始调试 可建立如下图的窗口 4、可以在生成的项目文件的中找到windows17_2的应用程序,打开界面如下: 注:新建空白项目也可以,注意在解决方案资源器中添加.cpp文件,如源.cpp文件,下载代码见博文 ...

weixin_46894139的博客 2914

nrf52840的uart0与uart1双串口使用

nrf52840的uart0与uart1双串口使用 项目原使用nrf52832,后面由于项目需要用到双串口,改用nrf52840,官方的例程没看到使用uart1的,找遍全网都没找到uart1的使用资料,有些不负责任的网文居然说40也只有一个uart,吓得俺赶紧又查看了一次datesheet,O得K、木鸭梨 SDK代码uart驱动中,搜索到uart1的驱动部分,说明官方驱动有uart1支持的 自己动手,丰衣足食吧,下面以nRF5_SDK_17.0.0_9d13099版本,在examples\ble_per

chhen168的博客 5625

Java网络编程总结

本文主要对java网络编程Socket类的使用做总结,其中Socket对象可以进行数据的读取和写入是必须要知道的!

wenzhi的博客 2万+

ZedBoard+Vivado(二)——PS + PL实现流水灯

硬件:Zedboard 软件:Vivado2018.2 + Win10 本文参考了http://blog.chinaaet.com/cuter521/p/35978的设计 1 设计 功能:PS + PL流水灯 语言:C 流程:创建工程->IP Integrator->综合、实现、生成Bitstream->SDK 2 流程 2.1 创建工程 跟上一篇步骤完全相同,这里不用添加源文...

q416524389的博客 3695

JAVA网络编程(1):Java编写简单的UDP网络程序

(1)Java中为UDP协议提供的编程类是DatagramSocket,这个被放在java.net包中。 (2)DatagramSocket类有三个构造方法: (1) public DatagramSocket() throws SocketException (2) public DatagramSocket(int port) throws SocketException (...

区块链之美 927

“挑战杯”大赛“揭榜挂帅”赛道-baseline解析

在这个脚本中,txt文件的保存路径为'yolov7/datasets/Fatigue_driving_detection/txt_labels/',而xml文件的路径为'./label_xml/'。标注图片后的产物是会给每一个图片对应生成一个xml格式的文件,但是如果要用yolo框架去训练模型,输入的数据必须是txt格式,因此这里有一步转换格式的过程。注意看:obs这里有三个文件夹,第一个是关键帧的文件夹A,第二个是标注时输出的位置为文件夹B,第三个是智能标注后和手动标注的合集文件夹C。

m0_62899814的博客 2321

uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级详细教程

uniapp中H5微信登录,uniapp H5微信授权登录,微信公众号第三方网页(H5)授权登录(OAuth2.0)流程及逻辑详细教程,UNIAPP 开发H5 怎么实现微信公众号登录功能,uniapp如何实现H5网页的公众号微信登录,怎么做uniapp微信登录,uniapp h5项目怎么实现微信登录的功能,uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录)

🏆 前端领域优质创作者 7409

坤哥北上

热烈庆祝坤哥昨天以7000RMB顺利签约北京一家公司,并且公司承诺工资每半年涨500RMB。 愿坤哥捷报频传,步步高升! 特此记录,勉之,励之!

郗晓勇|利己者生,利人者恒 2136

[系统安全] 四十七.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解

系统安全将更好地帮助初学者了解病毒逆向分析和系统安全。前文详细介绍恶意代码静态分析经典工具Capa的基础用法,以及批量提取静态特征和ATT&CK技战术,主要是从提取的静态特征Json文件中提取关键特征。这篇文章将详细讲解动态分析沙箱Cape,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。本文先介绍Cape沙箱的安装和基础用法,后续随着深入再分享。基础性文章,希望对您有帮助!

杨秀璋的专栏 6737

Java—网络程序设计

Socket介绍 Socket是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便地实现网络上数据的传递。在Java中,有专门的socket类来处理用户的请求和响应。利用Socket类的方法,就可以实现两台计算机之间的通信。 在Java中,可以将Socket理解为客户端或者服务器端的一个特殊的对象,这个对象有两个关键的方法,一个是getInputStream()方法,另一个是getOutputStream()方法。getInputStream()方法用于得到一个输入流

LiLi的博客 2139

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java网络聊天程序_简单网络聊天程序 java程序代码

展开全部1.服务器端的代码:32313133353236313431303231363533e78988e69d8331333262356163//ChatServer.Javaimport java.net.*;import java.util.*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.sw...

weixin_29513805的博客 121

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java网络程序_Java 网络程序

Java在网络编程这个地方做的很好,java的主要目的也是为了网络而生的,它能方便的访问网络上的资源。我们这节课来介绍网络通讯的两种机制:URL通信机制,Socket通信机制。URL表示了Internet上一个资源的引用或地址。Java网络应用程序也是使用URL来定位要访问的Internet的资源。在jdk里面java.net.URL也是一个类,它来封装URL的一些细节。目前大家可以把URL理解为...

weixin_33602738的博客 171

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java网络聊天程序_java实现一个简单的网络聊天程序

代码服务器端package socket_demo;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class server {public static void main(String[] args) throws ...

weixin_30991735的博客 533

java网络聊天程序_java网络通信技术之简单聊天小程序

本文实例为大家分享了java实现简单聊天小程序的具体代码,供大家参考,具体内容如下再学习完java的通信技术后,做了一个简单的窗体聊天程序。程序非常简单,主要目的是当练习巩固自己所学的东西,在这里写出来记录以下。下面直接上代码。首先是服务端代码:package ChatTwoPackage;import java.io.*;import java.net.*;public class ChatTw...

weixin_35262602的博客 697

java网络蜘蛛_基于java网络蜘蛛程序

内容介绍原文档由会员 刘丽 发布基于java网络蜘蛛程序1.2万字 42页包括开题报告,任务书,答辩PPT和论文正文摘 要在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。网络蜘蛛程序是Web搜索引擎技术中关键的一部分。本论文基于现有的知识理论实现了蜘蛛程序,...

weixin_33924688的博客 424

利用java编写网络通信程序

利用java编写网络通信程序作者:于洪斌、马俊光、车雪松  一、java与网络通信   java是一门适合于分布式计算环境、尤其是Internet程序设计的语言。这不仅仅在于java具有很好的安全性和可移植性,还在于java为Internet编程提供了丰富的网络类库支持。利用这些网络类库,可以轻松编写多种类型的网络通信程序。   TCP/IP协议是当今最流行的协议,也是Int

蝈蝈俊.net 4994

Java语言程序设计—网络编程

java网络编程

gb4215287的博客 285

java程序里如何ping网络

Log.d("正在ping网关","a");Log.d("正在ping网关","a");//ping IP和ping 网关。

qq_48843954的博客 280

网络编程Java实例源程序

 网络编程Java实例源程序,是《Java2实用编程百例》的第7章,很适合《网络通信编程》课程基础学习。  http://download.youkuaiyun.com/source/652855 下载有益

精确管理知识库 1万+

java程序设计ppt_java网络程序设计.ppt

java网络程序设计.ppt 1,Java网络程序设计,中国石油大学(华东) 计算机与通信工程学院 刘建航,2,一、概述,工作原理:基于B/S(浏览器/服务器)模式,,,,,3,一、概述,工作原理:基于B/S(浏览器/服务器)模式 数据存取的三级结构,,,,,,4,一、概述,HTML-- 超文本标记语言 HTML它构成了Internet应用程序的基础。由于它提供一种友好的界面方式来发布信息,因此在...

weixin_36032446的博客 325

在Java中使用网络框架编写网络应用程序

前言 自从JDK1.4中有了NIO以后,这个方面越来越活跃,也为java赢得更多开发者的支持。做java网络编程需要掌握一些基本的知识和技能:套接字编程、阻塞/非阻塞通信、创建HTTP服务器与客户程序、数据报通信、对象的序列化与反序列化、Java反射机制、RMI框架、JDBC API、JavaMail API、MVC设计模式、安全网络通信、CORBA和Web服务 等等。 八大主流网络编程框架: 1、Apache MINA 项目主页:http://mina.apache.org/ 为开发高性能和高可用性的网络

江南好 633

Java之聊天网络程序

实验七 聊天网络程序设计实验 一、实验目的 练习基于Socket的网络访问方法,理解TCP/IP传输层网络程序的设计思想与实现方法。 二、实验内容 设计通过网络进行聊天的Java应用程序,实现如下功能: (1)聊天两端具有相同的界面,包括能输入消息的文本框、发送消息按钮、消息列表文本框; (2)任意一端均可以实时发送和接收消息,并在自身的消息列表中显示消息记录。三、实验设计 (反映设...

喜欢就好 5376
上一篇: Java 输入/输出
下一篇: 游客的旅游意外保险谁来买?
caok
博客等级 码龄22年 88粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值