网络编程——Java基础

Java网络编程全面指南:从基础到实践 在当今互联网时代,网络编程已成为软件开发的核心技能之一。Java作为一门成熟的编程语言,提供了强大而全面的网络编程能力。无论是构建简单的客户端/服务器应用,还是开发复杂的分布式系统,Java都能提供完善的解决方案。本文将全面介绍Java网络编程的各个方面,从基础概念到高级应用,帮助开发者掌握这一重要技能。 阅读详情


一、网络编程概述

网络编程参考模型:OSI模型和TCP/IP模型。

通讯的要素:
IP地址:网络中设备的标识,本地回环地址127.0.0.1,主机名:localhost.
端口号:英语标识进程的逻辑地址,即不同进程的标识,有效端口号为:0~65535,
其中0~1024为系统保留。
传输协议:即通信规则,有UDP、TCP.

代码实例:演示获取主机名,根据主机名获取IP

class IPDemo
{
	public static void main(String [] args)
	{
		InetAddress i = InetAddress.getByName("www.baidu.com");
		System.out.println(i.toString());
		System.out.println("name: "+i.getHostName());
		System.out.println("address: "+i.getHostAddress());
	}
}
UDP:
将数据以及源和目的封装成数据包中,不需要建立连接。
每个数据包大小限制在60k以内。
因为不需要建立连接,是不可靠协议。
无需连接,速度较快
TCP:
建立连接形成数据传输通道。
在连接中进行大数据量传输。
通过三次握手建立连接,可靠协议。
必须要建立连接,效率稍低。
Socket:
为网络服务提供的一种机制。
通信两端都有Socket
网络通信其实就是Socket间通信。
数据在两个Socket之间通过IO传输。
二、使用UDP建立接收和发送端
重点在于掌握UDP的接收端和发送端的建立流程。
定义UDP发送端步骤:
1.建立udpsocket服务。
2.提供数据并将数据封装到数据包中。
3.通过socket服务的发送功能将数据包发送出去。
4.关闭资源。
定义UDP接收端步骤:
定义UDP接收端
1.定义udpsocket服务。通常会监听一个端口,其实就是给这个接收网络
应用程序定义一个数字标识,方便明确哪些数据过来
该应用程序可以处理
2.定义一个数据包,因为要存储接收到的字节数据,因为数据包对象中
3.通过socket服务的receive方法将受到的数据存入已经定义好的数据包中
4.通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台。
5.关闭资源。
代码实例:UDP发送端

import java.net.*;
class UdpSend 
{
	public static void main(String[] args) throws Exception
	{
		//创建udp服务。通过DatagramSocket对象
		DatagramSocket ds=new DatagramSocket();

		//2.确定数据,并封装成数据包。
		byte[] buf="ge men lai le".getBytes();
		DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.102"),123);

		//3.通过socket服务将已有的数据包发送出去。通过send方法
		ds.send(dp);

		//4.关闭资源。
		ds.close();

	}
}
代码实例:UDP接收端

class UdpRec
{
	public static void main(String[] args) throws Exception
	{
		//1.创建udp socket。建立端点
		DatagramSocket ds=new DatagramSocket(123);

		while(true)
		{
			//2.定义数据包。用于存储数据。
		byte[] buf=new byte[1024];
		DatagramPacket dp=new DatagramPacket(buf,buf.length);

		//3.通过服务的receive方法将收到的数据存到数据包中
		ds.receive(dp);

		//4.通过数据包的方法获取其中数据
		String ip=dp.getAddress().getHostAddress();

		String data=new String(dp.getData(),0,dp.getLength());

		int port=dp.getPort();

		System.out.println(ip+":::"+data+":::"+port);

		//5.关闭资源
		//ds.close();
		}
		

	}
}
对以上的发送和接收服务端稍加改造,可以实现一个简单的聊天程序
示例代码:

import java.io.*;
import java.net.*;

class  UdpSend2
{
	public static void main(String[] args) throws Exception
	{
		//创建UDP服务对象
		DatagramSocket ds=new DatagramSocket();
		//键盘录入信息
		BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));

		String line=null;
		while((line=bufr.readLine())!=null)
		{
			//结束发送标志
			if("88".equals(line))
				break;
			byte[] buf=line.getBytes();

			//打包
			DatagramPacket dp=
				new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.102"),10001);

			ds.send(dp);
		}
		//关闭资源
		ds.close();
	}
}

class UdpRec2
{
	public static void main(String [] args)throws Exception
	{
		//创建接收端对象并监听端口。
		DatagramSocket ds=new DatagramSocket(10001);

		//阻塞
		while(true)
		{
			//创建缓冲区接收数据
			byte[] buf=new byte[1024];
			DatagramPacket dp=new DatagramPacket(buf,buf.length);
			
			ds.receive(dp);
			//解析数据并打印
			String ip=dp.getAddress().getHostAddress();
			String data=new String(dp.getData(),0,dp.getLength());
			System.out.println(ip+"::"+data);
			
		}
	}
}
三、TCP传输
TCP分为客户端和服务端,客户端对应的对象时Socket,
服务端对应的对象时ServerSocket.
客户端:
在建立Socket对象时就可以去连接指定主机。
因为TCP是面向连接的。所以在建立Socket服务时。
就要有服务端存在。并连接成功。形成通路
在该同道中进行数据传输。
客户端步骤:
1.创建Socket服务。并制定要连接的主机和端口。
2.为了发送数据。应该获取socket流中的输出流。
3.将数据写入到获取的输出流中
4.关闭资源
服务端:
1.建立服务端的socket服务。ServerSocket();
并监听一个端口
2.获取链接过来的客户端对象。
通过ServerSocket的accept方法。这个方法
是阻塞式的。
3.客户端发过来数据。服务端使用对应的客户端对象
并获取到该客户端的读取流。
并打印在控制台。
4.关闭服务端(可选)
客户端示例代码:带反馈信息

class TcpClient
{
	public static void main(String[] args)throws Exception{
		//建立客户端服务,制定主机和端口号
		Socket s = new Socket("192.168.0.102",10001);
		//获取输出流
		OutputStream out = s.getOutputStream();
		//将数据写入到获取的输出流中
		out.write("Tcp Demo".getBytes());
		//获取读取流,用来接收服务端返回信息
		InputStream in=s.getInputStream();
		//创建缓冲区,读取服务端信息并打印
		byte[] buf=new byte[1024];
		int len=in.read(buf);
		System.out.println(new String(buf,0,len));
		//关闭资源
		s.close();
	}
}
服务端示例代码:接收成功给客户端返回信息

class TcpServer
{
	public static void main(String[] args)throws Exception{
		//建立服务端,监听端口号。
		ServerSocket ss = new ServerSocket(10001);
		//接收链接过来的客户端对象
		String s = ss.accept();
		//获取一下客户端IP并打印
		String ip = s.getInetAddress().getHostAddress();
		System.out.println(ip+"*****connect");
		//使用对应的客户端获取该客户端的读取流
		InputStream in = s.getInputStream();
		byte[] buf = new byte[1024];
		//读取客户端数据并打印。
		int len = in.read(buf);
		System.out.println(new String(buf,0,len));
		//获得输出流,用来给客户端返回信息
		OutputStream out=s.getOutputStream();
		//将需要反馈的信息写入到输出流
		out.write("Server Accepted Data ok!".getBytes());
		//关闭资源
		s.close();
		//ss.close();

	}
}
示例代码:客户端键盘录入字母发送给服务端,服务端转换成大写,反馈给客户端

package Net;
import java.net.*;
import java.io.*;

//创建客户端,键盘录入信息,传给服务端,并接收服务端反馈的信息
class TransClient {
	public static void main(String[] args)throws Exception{
		//创建客户端服务,指定主机和端口号
		Socket s = new Socket("192.168.0.102",10011);
		//读取键盘录入.源
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		//关联一个输出流,目的
		PrintWriter out = new PrintWriter(s.getOutputStream(),true);
		//定义一个读取流,接收服务端返回的大写信息
		BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
		
		String line = null;
		while((line = bufr.readLine())!=null)
		{
			//检测到over就结束
			if(line.equals("over"))
				break;
			//将读到的键盘录入信息写入到已经关联的输出流。
			out.println(line);
			//获取服务端返回的信息并打印
			String str = bufIn.readLine();
			System.out.println("server: "+str);
			
		}
		bufr.close();
		s.close();
	}
}
//创建服务端,接收客户端发送过来的信息,进行大写转换后,反馈。
class TransServer{
	public static void main(String[] args)throws Exception{
		//创建服务端,监听端口号
		ServerSocket ss = new ServerSocket(10011);
		//接收并打印客户端IP
		Socket s = ss.accept();
		String ip = s.getInetAddress().getHostAddress();
		System.out.println(ip+"************is connected");
		//获取流中的数据。源
		BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
		//关联输出流,目的
		PrintWriter out = new PrintWriter(s.getOutputStream(),true);
		//进行读取
		String line = null;
		while((line = bufIn.readLine())!=null)
		{
			System.out.println(line);
			//将接收的数据进行大写转换并写到已关联的输出流
			out.println(line.toUpperCase());
		}
		s.close();
	}
}
使用TCP协议,从客户端向服务端传送一个文件。大体思路与上例相似,只不过客户端的源由原来的键盘录入改为
关联一个需要上传的文件,但是注意:传送文件结束标记要用:shutdownOutput();方法。相当于给流一个-1的结束标志;
而服务端的源依然是输入流,目的则改为磁盘,存储客户端传送过来的文件,其实相当于将文件内容复制过来。
具体实现代码如下:

/*
需求:客户端文件内容发送给服务端
	并在服务端保存(相当于copy)
*/

import java.io.*;
import java.net.*;

class  TextClient
{
	public static void main(String[] args) throws Exception
	{
		//创建客户端,指定主机和端口号,关联源和目的。
		Socket s=new Socket("192.168.0.102",10009);
		BufferedReader bufr=
			new BufferedReader(new FileReader("IPDemo.java"));
		PrintWriter out=new PrintWriter(s.getOutputStream(),true);
		//读取关联的文件内容,并写入到已经关联的目的中
		String line=null;
		while((line=bufr.readLine())!=null)
		{
			out.println(line);
		}
		//关闭客户输出流,相当于给流加了一个结束标记-1.
		s.shutdownOutput();
		//创建输入流,接收服务端反馈信息并打印
		BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
		String str=bufIn.readLine();
		System.out.println(str);
		bufr.close();
		s.close();
	}
}
class  TextServer
{
	public static void main(String[] args) throws Exception
	{
		//创建服务端监听端口号获取并打印链接过来的主机IP
		ServerSocket ss=new ServerSocket(10009);
		Socket s=ss.accept();
		String ip=s.getInetAddress().getHostAddress();
		System.out.println(ip+":::connect");
		//创建输入流,关联目的
		BufferedReader bufIn=new BufferedReader(new InputStreamReader(s.getInputStream()));
		PrintWriter out=new PrintWriter(new FileWriter("Server.txt"),true);
		//读取获取的输入流对象内容并输出到已关联的磁盘文件中
		String line=null;
		while((line=bufIn.readLine())!=null)
		{
			out.println(line);
		}
		//反馈信息
		PrintWriter pw=new PrintWriter(s.getOutputStream(),true);
		pw.println("上传成功");		
		out.close();
		s.close();
		ss.close();
	}
}
并发访问服务端实例:客户端在控制台指定一个规定格式的文件上传到服务端,
且可以实现多个客户端同时上传。这就用到了多线程,将每个连接过来的客户端都封装成一个
对象,用该对象创建一个线程,而每个线程要执行的代码是相同的,可以将该代码写在run方法
中,
代码实例:

/*
需求:上传图片。
在控制台指定需要上传的文件。

*/

/*
客户端:
1.服务端点
2.读取客户端已有的图片数据
3.通过socket输出流将数据发给服务端。
4.读取服务端反馈信息。
5.关闭
*/
import java.net.*;
import java.io.*;
class  PicClient
{
	public static void main(String[] args) throws Exception
	{
		//客户端读取已有图片(待定文件)源
		FileInputStream fis=new FileInputStream(file);
		//在客户端指定要选择的文件的格式要求。
		if(args.length!=1)
		{
			System.out.println("请选择jpg格式图片");
			return;
		}
		File file=new File(args[0]);
		if(!(file.exists())&& file.isFile())
		{
			System.out.println("文件不存在或者不是文件");
			return;
		}
		if(!file.getName().endsWith(".jpg"))
		{
			System.out.println("图片格式错误");
			return;
		}
		if(file.length()>1024*1024*5)
		{
			System.out.println("文件过大!");
			return;
		}
		//如果指定文件满足格式要求,创建服务端点 IP Port
		Socket s=new Socket("192.168.0.102",10010);		
		//创建输出字节流。目的
		OutputStream out=s.getOutputStream();
		//创建缓冲区
		byte[] buf=new byte[1024];
		int len=0;
		while((len=fis.read(buf))!=-1)
		{
			//将指定的文件写入到输出流中
			out.write(buf,0,len);
		}
		//告诉服务端写完,让服务端结束读循环
		s.shutdownOutput();
		//创建输入字节流,用以获取反馈信息
		InputStream in=s.getInputStream();
		//缓冲区接收服务端反馈信息并打印
		byte[] bufIn=new byte[1024];
		int num=in.read(bufIn);
		System.out.println(new String(bufIn,0,num));
		fis.close();
		s.close();
	}
}
/*
定义每个线程共同执行的代码
*/
class PicThread implements Runnable
{
	//需要传入一个对象
	private Socket s;
	PicThread(Socket s)
	{
		this.s=s;
	}	
	public void run()
	{
		//获取该对象的主机名
		String ip=s.getInetAddress().getHostAddress();
		try
		{
			int count=0;
			System.out.println(ip+"****connect");
			//数据输入读取流
			InputStream in=s.getInputStream();	
			//多次上传命名
			File file=new File(ip+"("+(count)+")"+".jpg");
			while(file.exists())//如果已经存在就让count加1再存储。
				file=new File(ip+"("+(count++)+")"+".jpg");
			//保存数据
			FileOutputStream fos=new FileOutputStream(file);
			byte[] buf=new byte[1024];
			int len=0;
			while((len=in.read(buf))!=-1)
			{
				//写入数据到ser.bmp
				fos.write(buf,0,len);
			}
			//给客户端反馈信息
			OutputStream out=s.getOutputStream();	
			out.write("上传成功".getBytes());
			fos.close();
			s.close();
		}
		catch (Exception e)
		{
			throw new RuntimeException(ip+"获取失败");
		}
	}
}
/*服务端:
为了同时处理多个客户端的请求。将每个客户端封装到一个单独的
	线程中,这样就可以同时处理多个客户请求
如何定义线程呢?
只要明确了每一个客户端要在服务端执行的代码即可,将该代码
	存入run方法中。*/
class PicServer 
{
	public static void main(String[] args) throws Exception
	{
		//建立服务 监控端口号
		ServerSocket ss=new ServerSocket(10010);
		while(true)
		{
			//等待获取客户端,将接收到的客户端封装成对象,
			Socket s=ss.accept();
			//将接收到的客户端对象创建线程,(每接收一个对象就创建一个线程,实现并发访问)
			new Thread(new PicThread(s)).start();
		}
		//ss.close();
	}
}
四、浏览器作为客户端,服务端:自定义和Tomcat服务器
示例代码:

import java.net.*;
import java.io.*;

class ServerDemo 
{
	public static void main(String[] args) throws Exception
	{
		ServerSocket ss=new ServerSocket(10001);

		//获取客户端数据
		Socket s=ss.accept();
		//获取客户端地址
		System.out.println(s.getInetAddress().getHostAddress());
		//获取客户端请求信息
		InputStream in=s.getInputStream();

		byte[] buf=new byte[1024];

		int len=in.read(buf);

		System.out.println(new String(buf,0,len));

		//给客户端发送反馈信息
		PrintWriter out=new PrintWriter(s.getOutputStream(),true);

		out.println("<font color='red' size='7'>客户端你好</font>");

		s.close();
		ss.close();
	}
}
五、小知识
关于InetAddress和InetSocketAddress的区别:
InetAddress代表IP地址,InetSocketAddress代表的IP+port。
域名解析:
想要将主机名翻译成ip地址,就需要域名解析,DNS.
域名和ip的映射关系存放在本机的C:\Windows\System32\drivers\etc\host文件中,
我们可以更改恶意网站域名对应的IP来达到避免被恶意网站感染。
URL地址解析:
String getFile() 
          获取此 URL 的文件名。 
String getHost() 
          获取此 URL 的主机名(如果适用)。 
String getPath() 
          获取此 URL 的路径部分。 
int getPort() 
          获取此 URL 的端口号。 
String getProtocol() 
          获取此 URL 的协议名称。 
String getQuery() 
          获取此 URL 的查询部分。 
示例代码:

import java.net.*;
class  URLDemo
{
	public static void main(String[] args) throws MalformedURLException

	{
		//定义一个URL地址
		URL url=new URL("http://192.168.0.102:8080/myweb/demo.html?haha&hello=90");
		//解析
		System.out.println("getProtocol() :"+url.getProtocol());
		System.out.println("getHost() :"+url.getHost());
		System.out.println("getPort() :"+url.getPort());
		System.out.println("getPath() :"+url.getPath());
		System.out.println("getFile() :"+url.getFile());
		System.out.println("getQuery() :"+url.getQuery());

//		int port=url.getPort();
//		返回-1则指定默认端口
//		if(port==-1)
//			port=80;
	}
}


【WRFDA第三期】OBSPROC namelist 变量总结 OBSPROC namelist 变量总结 阅读详情

相关推荐

保姆级教程:RK3588部署yolo目标检测模型

RK3588部署yolo目标检测模型非常详细的保姆级教程

ling913的专栏 5484

【Java 基础】Java 网络编程

Java的网络编程是指使用Java语言进行网络通信的编程技术。在Java中,可以使用Socket和ServerSocket类来实现基于TCP协议的网络通信,也可以使用DatagramSocket和DatagramPacket类来实现基于UDP协议的网络通信。

激流丶的博客 1889

数字经济新质生产力数字化转型数据要素流通交易解决方案:数据要素化演进路径与管理、公共数据授权运营平台体系、数据底座、典型应用场景

数字经济的发展依赖于数据要素的有效流通与交易,数字化转型的核心在于数据的全生命周期管理和价值释放。数据要素化通过数据资源化、资产化和资本化的“三化”过程,实现其经济与社会价值。数据管理涵盖采集、存储、加工、分析等环节,支持数据的度量与交换。公共数据、企业数据和个人数据通过场内、场外及二级市场交易实现资本化。公共数据开发利用面临隐私泄露、监督管理难等痛点,目标是构建授权运营平台体系,确保数据流通的安全与效率。平台体系包括统一门户、授权管理、运营管理、合规监督等核心功能,支持明文、密文和可信交换流通方式。数据底

weixin_44094929的博客 1002

Java网络编程基础

一、Java网络编程  网络编程在如今这样的网络时代是十分重要的,Java语言提供了丰富的类库来支持网络编程。这里将重点介绍Java.net中的类,充分了解认识Java网络编程的原理并深入学习各模块。在学习Java网络编程之前首先需要具备一定的网络知识:网络的层次结构,常见的网络协议(TCP/IP),IP地址端口号等等。需要学习了解这些内容,可以参考前面的文章。二、主机地址和IP地址  在进行网络访

三哥的博客 2810

Win11 24H2家庭版共享打印机失败?别慌,一个批处理脚本搞定所有设置

本文提供了Win11 24H2家庭版共享打印机失败的解决方案,通过一个批处理脚本自动修复所有设置问题。脚本包含安装组策略组件、修改关键注册表项等操作,帮助用户快速恢复打印机共享功能,适用于普通家庭用户。

weixin_30632089的博客 418

取证实战:当嫌疑人电脑已关机,如何利用EFDD从休眠文件提取BitLocker密钥?

本文详细介绍了如何利用Elcomsoft Forensic Disk Decryptor(EFDD)从休眠文件(hiberfil.sys)中提取BitLocker密钥的实战技术。通过分析休眠文件中的内存快照,取证人员可以突破已关机加密设备的防线,获取关键解密信息。文章涵盖了工具配置、镜像获取、密钥提取及验证等完整流程,并提供了疑难问题解决方案和法律合规建议。

weixin_29315091的博客 342

【Java基础】Java网络编程

网络编程的目的就是直接或间接地通过网络协议与其他计算机进行通信。在Java语言中包含网络编程所需要的各种类,编程人员只需要创建这些类的对象,调用相应的方法,就可以进行网络应用程序的编写。 要进行网络程序的编写,编程人员需要对网络传输协议、端口和套接字等方面的知识有一定的了解。下面就从这几个方面对网络编程的基础进行介绍。......

wang_qiu_hao的博客 1069

保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制

本文提供了一份详细的K230开发板与张大头步进电机的控制教程,涵盖硬件连接、协议解析、模块化代码实现及实战案例。通过位置、速度和回零功能的全面讲解,帮助开发者快速掌握步进电机的高级控制技术,适用于自动化、机器人等应用场景。

weixin_42629671的博客 708

Java基础——网络编程

基于客户端——服务端的网络通信底层使用的是TCP/IP协议应用场景举例:客户端发送数据,服务端接收并显示在控制台基于Socket的TCP编程类DatagramSocket和类DatagramPacket实现了基于UDP协议的网络通信UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能安全送到目的地,也不能确定什么时候可以抵达DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端的IP地址和端口号,以及接收端的IP地址和端口号。

weixin_74019079的博客 1683

SAP IDOC实战:如何用EDI实现跨公司采购订单自动生成销售订单(附完整配置步骤)

本文详细解析了如何利用SAP IDOC与EDI技术,实现跨公司采购订单自动生成销售订单的完整流程。通过实战案例,从业务蓝图设计、输出条件配置、伙伴参数设定到IDOC消息类型处理,提供了清晰的配置步骤与故障排查指南,帮助企业打通内部业务流,构建高效的自动化闭环。

weixin_29215815的博客 727

使用freesurfer和3Dslicer进行脑区分割和电极定点(详细版)

1、安装好matlab和freesurfer2、在目标位置创建文件夹3、开放权限4、将需要计算的nii文件放入文件夹。

zQIANYUN的博客 5622

Java 基础——网络编程

网络编程

IT__learning的博客 1031

【第2章>第10节】深度学习DenseNet模型分析与matlab仿真

本文介绍了基于DenseNet深度学习模型的图像分类MATLAB实现方法。主要内容包括:1. DenseNet模型原理,详细解析了初始卷积层、密集块、过渡层等核心结构;2. 在MATLAB环境下完成DenseNet工具箱安装和测试样本准备;3. 实现图像预处理(统一缩放为224×224)、模型训练和测试的完整流程;4. 提供了混淆矩阵和准确率等测试结果分析。文章附带完整的MATLAB程序代码和操作视频教程,适合深度学习初学者快速掌握DenseNet模型的图像分类应用。通过实际测试,验证了该方案的有效性。

FPGA/MATLAB学习教程/源码/项目合作开发 330

java网络编程基础知识

java网络编程基础知识 一、网络基本概念 1、计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。 2、网络体系结构:国际标准化组织ISO于l9

4248

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java网络编程基础

java网络编程基础,概括。

blue_STOME的博客 710

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java学习之网络编程基础

Java网络编程基础1 网络编程入门1.1软件结构1.2 通信协议1.3 TCP/IP协议1.4 网络编程三要素1.4.1 协议1.4.2 IP地址1.4.2.1 IP地址的分类1.4.2.2 常用命令1.4.3 端口号2 TCP通信程序2.1 概述2.2 Java中的实现2.2.1 Socket类构造方法:常用成员方法2.2.2 ServerSocket类构造方法成员方法2.2.3 简单的TCP...

梅大志没大志 830

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java基础之网络编程

在Java中,提供了两个类用于实现TCP通信程序: 1.客户端:java.net.Socket类表示。创建Socket对象,向服务端发送连接请求,服务端相应请求,两者建立连接开始通信。 2.服务端:java.net.ServerSocket 类表示。创建 ServerSocket 对象,相当于开启一个服务,并等待客户端的连接。

小小张自由—>张有博 2707

Java网络编程基础知识

Java网络编程基础1,Java网络编程概述2,通信要素一:IP地址和端口号2.1,IP2.2,端口号2.3,关于InetAddress类的说明:3,通信要素二:网络协议3.1,TCP网络编程3.2,UDP网络编程4,URL编程4.1,URL常用方法测试4.2,实现实现下载服务器端资源 1,Java网络编程概述 网络编程的目的: 直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。 网络编程中有两个主要的问题: 问题1,如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 问题2,

架构沉思录的博客 1636

Java基础系列十二 Java网络编程

Java基础系列第十二章 Java网络编程 网络编程基础:通信协议、Java网络编程,IP地址与InetAddress类,通信端口与URL类,Socket技术:Socket类、ServerSocket类、TCP协议

924

Java基础(二十四):网络编程

回复一个彻底断开的报文。

从基础到源码解析的学习记录 1610

【Java 基础篇】Java网络编程基础知识详解

网络通信是指在不同计算机之间传递数据的过程。通信的两端可以是客户端和服务器,它们通过网络协议进行数据的交换和传输。网络通信是构建分布式系统、互联网和各种网络应用的基础。本文介绍了Java网络编程的基础知识,包括网络通信的概念、Socket编程、服务器和客户端编程等内容。网络编程是现代软件开发的重要部分,掌握这些基础知识将有助于开发各种网络应用程序。然而,网络编程也涉及到许多其它知识,大家需多加学习,才能更好的掌握 Java 网络编程。

繁依Fanyi的博客 829

黑马程序员——Java基础之网络编程

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ Java基础之网络编程 1.网络编程基本概念          网络编程的本质是两个设备之间通过网络的数据交换,在计算机网络中,设备主要指计算 机。概括的说是把一个设备中的数据发送给另外的一个设备,然后 接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请

ajin2015的博客 846

Java之网络编程基础

前天对java网络基础进行了以下总结,相信会有很多不足之处!请大牛多多指导,以寻求更好的进步! 在此之前,先说一说基础知识,个人对概念性的知识不是太感冒,但是不了解的话会很坑的。所以喽,还是总结看看! 一、网络的基本概念 1、计算机网络,说白了就是把分布在不同地区的计算机通过线等设备链接起来,形成一个大规模的网络系统,从而达到信息的传递。 2、网络体系:国际化标准组织ISO在1978年提出

空名先生 5688

【Java基础】 网络编程

在数字化时代,网络编程已成为软件开发中的重要组成部分。无论是构建分布式系统、实现实时通讯还是进行Web开发,都需要深入了解网络编程的基础知识和技术。这种技能不仅在IT领域至关重要,还在非计算机行业的岗位中发挥着越来越重要的作用。。网络编程的核心在于实现不同计算机之间的数据交换,而Java为此提供了丰富的类库和接口。一般情况下,在进行网络编程之前,应该掌握与网络有关的知识,甚至对细节也非常熟悉。例如网络通信协议、网络参考模型等。本文只介绍Java网络编程的相关概念,有关网络知识的内容请参看其他资料。

good good study day day up 1402

Java基础之网络编程入门篇

网络编程(基础阶段了解即可) 本章大纲 此文只是对初学Java小白的基础篇,设计的网络编程知识以及TCP/IP协议深度较浅,请选择性决定是阅读,对于HTTP等协议感兴趣并想进一步了解的同学可以阅读《图解HTTP》中文版 网络通信要素 IP和端口号 网络协议 TCP网络编程 UDP网络编程 网络编程目的 直接或间接地通过网络协议与其他计算机进行数据交换,进行通讯 网络编程的两个问题 如何准确的定位网络上的主机,定位到主机的特定的应用 找到主机后如何可靠高效地进行数据传输 网络编程中的两个要

HelloWorld 353

Java基础(一) 网络编程

什么是网络编程,简单来说网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据。程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据来进行处理。

这里是阿安的博客 544
上一篇: Java基础---多线程
下一篇: java基础之 IO系统
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值