Java-网络编程

java网络编程 通信双方地址IP端口号一定的规则(即:网络通信协议。有两套参考模型)OSI参考模型:模型过于理想化,未能在因特网上进行广泛推广TCP/IP参考模型(或TCP/IP协议):事实上的国际标准。 阅读详情

网络编程

第一部分

1、网络编程

|--网络编程的本质就是两个设备之间进行数据的交换;设备主要指的是计算机和计算机之间的通讯;
|--数据通讯的原理:数据传输,那么就涉及到了网络;
|--网络通讯的模型:
|--OSI参考模型
|--TCP/IP参考模型

|--网络通讯要素:

|--IP地址:IP地址值最大是255,127.0.0.1-->本地回环地址,主机名:localhost

|--端口号:数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用了数字进行标识;

|--传输协议:也就是通讯规则,按照同一种规则进行通讯;

2、IP地址

InetAddress:用于描述IP地址的对象,表示互联网协议 (IP) 地址。

InetAddress 类一些方法:

|--static InetAddress getLocalHost() 获取本地主机
|--String getHostAddress() 获取主机地址
|--String getHostName() 获取主机名
|--static InetAddress getByName(String host) 获取任意一台主机的地址

3、代码体现

<span style="font-family:Microsoft YaHei;font-size:14px;">import java.net.*;
class IpDemo 
{
	public static void main(String[] args) throws Exception 
	{
//		 String getHostAddress() 
//		获取本地主机
		InetAddress i = InetAddress.getLocalHost();
		InetAddress ia = InetAddress.getByName("www.baidu.com");
//		获取主机地址
		System.out.println("address:"+ia.getHostAddress());
//		获取主机名
		System.out.println("name:"+ia.getHostName());
		System.out.println(i.toString());
	}
}</span>
 

3、端口

端口:就是用数字进行标识的,因此没有必要定义对象

4、传输协议

UDP特点:
|--将数据的源和目的封装成数据包中,面向无连接的;就是你在不在和我没关系,你在就收到,不在这个包就丢了,生活中相当于到邮局去寄东西;
|--没个数据包的大小限制在64k之内,可以分成多个包进行发送;
|--因为是无连接的,所以是不可靠的协议;
|--不需要建立连接,速度快;

TCP特点:

|--面向连接的;

|--需要通过三次握手来完成连接的;

|--在连接中可以进行大数据传输;

|--必须建立连接,效率会稍低;

5、Socket

|--Socket就是为网络服务提供的一个机制;
|--通信的两端都有Socket;
|--网络通信其实就是Socket间的通信;
|--数据在两个Socket键通过IO传输;
|--想要通讯,必须要先有港口;
|--其实讲的网络编程,其实就是Socket编程;

第二部分

1、UDP传送

UDP的Socket服务:
|--DatagramSocket此类表示用来发送和接收数据报包的套接字。既有发送又有接受
|--void send(DatagramPacket p)   DatagramPacket: 数据报包用来实现无连接包投递服务。

2、需求一

通过UDP传输方式,将一段文字数据发送出去;
思路:
|--建立UDPSocket服务;
|--提供数据,并将数据封装到数据包中;
|--通过Socket服务的发送功能,将数据包发出去;
|--关闭资源;
<span style="font-family:Microsoft YaHei;font-size:14px;">import java.net.*;
//定义发送端
class UdpSend 
{
	public static void main(String[] args) throws Exception
	{
//		创建udp服务,通过DatagramSocket对象
		DatagramSocket ds = new DatagramSocket(8888);
//		变成了字节数组;
		byte[] buf = "udp ge men lai le".getBytes();
//		DatagramPacket(byte[] buf, int length, InetAddress address, int port)
//		包,把数据全部发出去;要指定地址和端口;
		DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.101"),10000);
//		通过Socket服务将已有的数据包发送出去
		ds.send(dp);
//		关闭资源
		ds.close();

	}
}</span>

通过UDP传输方式:定义一个应用程序,用于接受UDP协议传送的处理数据的;

思路:定义一个UDP的接收端

|--定义UDPSocket服务;

|--定义一个数据包,因为要存储接收到的字节数据,因为数据包对象中有更多功能可以提取字节数据中的不同数据信息

|--通过Socket服务的receive方法将收到的数据存入已经定义好的数据包中,

|--通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上,

|--关闭资源;

|--InetAddress getAddress()  获取Ip地址

|--int getPort()  获取端口

接收端代码体现:接收端要指定一个数字端口10000;能接收到发送端的数据;

<span style="font-family:Microsoft YaHei;">class UdpReceive
{
	public static void main(String[] args) throws Exception
	{
//		建立udp的socket服务,因为这个Socket既能接也能发送;
		DatagramSocket ds = new DatagramSocket(10000);
//		定义数据包,用于存储数据
		byte[] buf = new byte[1024];
		
		DatagramPacket dp = new DatagramPacket(buf,buf.length);

//		通过服务的receive方法将收到的数据存入到数据包中
		ds.receive(dp);//receive阻塞式方法;
//		通过数据包的方法获取其中的数据   拿到了ip地址以后,获取到了一个InetAddress的对象,然后在.getHostAddress(),获取字符串
		String ip = dp.getAddress().getHostAddress();
//		将包中的字节数组变成字符串,只将有效的长度进行转换。
		String data = new String(dp.getData(),0,dp.getLength());
	
		int port = dp.getPort();
		System.out.println(ip+"::"+data+"::"+port);
//		关闭资源。
		ds.close();
	}
}</span>

3、运行结果

4、需求二

UDP键盘录入数据 

<span style="font-family:Microsoft YaHei;font-size:14px;">import java.io.*;
import java.net.*;
//只要用到net包就要用到io包
class UdpSend2 
{
	public static void main(String[] args)throws Exception 
	{
		DatagramSocket ds = new DatagramSocket();
//		键盘录入
		BufferedReader bufr = 
			new BufferedReader(new InputStreamReader(System.in));
//		读取数据
		String line =null;
		while((line = bufr.readLine())!=null)
		{
//			判断结束标记
			if("886".equals(line))
				break;
//			不是886就要先变成字节数据
			byte[] buf = line.getBytes();
//			封装成数据包,获取对方的主机地址
			DatagramPacket dp = 
				new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.101"),10001);
//			发送数据包
			ds.send(dp);
		}
		ds.close();
	}
}
//定义接收端
class UdpReceive2
{
	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);
		}
	}

}</span><span style="font-size:18px;">
</span>

5、运行结果

发送端发送数据,接收端接收数据,如果发送端886了,那么发送端就结束了,但是接收端一直是开着的;一直在接收数据的;

6、需求三

需求:编写一个聊天程序;
有接收数据的部分,和发送数据的部分
这两个部分需要同时进行
那就要用到多线程技术
一个线程控制收,一个线程控制发
因为收和发动作是不一致的,所以要定义两个run方法
而且这两个方法要封装到不同的类中;

代码实现

<span style="font-family:Microsoft YaHei;font-size:14px;">import java.io.*;
import java.net.*;

class Send implements Runnable
{
	private DatagramSocket ds;
//	在构造的时候就要传一个Socket进来
	public Send(DatagramSocket ds)
	{
		this.ds = ds;
	}
	public void run()
	{
		try
		{
			BufferedReader bufr = 
				new BufferedReader(new InputStreamReader(System.in));
			String line =null;
			while((line =bufr.readLine())!=null)
			{
//				定义结束标识
				if("886".equals(line))
					break;
				byte[] buf = line.getBytes();
				DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.101"),10002);
				ds.send(dp);
			}
		}
		catch (Exception e)
		{
			throw new RuntimeException("发送端失败");
		}
	}
}

class Rece implements Runnable
{
//	作用于整个类
	private DatagramSocket ds;
	public Rece(DatagramSocket ds)
	{
		this.ds = ds;
	}
	public void run()
	{
//		网络里面的异常,如地址异常什么的,很多异常
		try
		{
			while(true)
			{
				byte[] buf = new byte[1024];
				DatagramPacket dp = new DatagramPacket(buf,buf.length);
//				将接受到的数据存储到定义好的数据包中,为了获取数据方便;
				ds.receive(dp);
//				先要获取IP地址
				String ip = dp.getAddress().getHostAddress();
//				获取具体数据
				String data = new String(dp.getData(),0,dp.getLength());
				System.out.println(ip+"::"+data);
			}
		}
		catch (Exception e)
		{
			throw new RuntimeException("接收端失败");
		}
	}
}
class ChatDemo 
{
//	监听端口容易发生Socket异常;
	public static void main(String[] args) throws Exception
	{
//		创建Socket服务
		DatagramSocket sendSocket = new DatagramSocket();
//		接收端要指定端口
		DatagramSocket receSocket = new DatagramSocket(10002);
//		创建线程
		new Thread(new Send(sendSocket)).start();
		new Thread(new Rece(receSocket)).start();
	}
}
</span><strong style="font-size:18px;">

</strong>
</pre></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><h2><span style="font-family:Microsoft YaHei; font-size:18px">运行结果</span></h2></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:18px"><img src="https://img-blog.youkuaiyun.com/20150611035745868?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamF2YTk4MzI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></div><div><span style="font-family:Microsoft YaHei; font-size:18px"></span></div></blockquote></blockquote><h1><span style="font-family:Microsoft YaHei; font-size:24px"><strong>第三部分</strong></span></h1><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><h2><span style="font-family:Microsoft YaHei; font-size:18px"><strong>1、TCP传输</strong></span></h2></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:14px">|--客户端:Socket:此类实现客户端套接字</span></div></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:14px">|--Socket(InetAddress address, int port) :一初始化就要指定地址恶化端口</span></div></blockquote></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:14px">|--该对象在建立时,就要去连接指定的主机,因为tcp是面向连接的,所以在建立Socket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输;</span></div></blockquote></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:14px">|--服务端:ServerSocket:此类实现服务器套接字。</span></div></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><h2><span style="font-family:Microsoft YaHei; font-size:18px">2、客户端</span></h2></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><div><span style="font-family:Microsoft YaHei; font-size:14px">需求:给服务端发送一个文本数据;</span></div></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p><span style="font-family:Microsoft YaHei; font-size:14px">步骤:</span></p></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p><span style="font-family:Microsoft YaHei; font-size:14px">|--创建Socket服务,并指定要连接的主机和端口;</span></p><p><span style="font-family:Microsoft YaHei; font-size:14px">|--为了发送数据,应该获取Socket流中的输出流;</span></p><p><span style="font-family:Microsoft YaHei"><span style="font-size:14px">|--把字符串变成字符数组写出去;</span></span></p></blockquote></blockquote><h2><span style="font-family:Microsoft YaHei; font-size:18px">3、服务端</span></h2></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p><span style="font-family:Microsoft YaHei; font-size:14px">需求:定义端点接受数据并打印在控制台上</span></p></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p><span style="font-family:Microsoft YaHei; font-size:14px">步骤:|--建立服务端的socket服务。ServerSocket()并监听一个端口;</span></p></blockquote></blockquote></blockquote><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><blockquote style="margin:0 0 0 40px; border:none; padding:0px"><p><span style="font-family:Microsoft YaHei; font-size:14px">   |--获取连接过来的客户端对象;通过ServerSocket的accept方法,没有连接就会等,所以这个方法是阻塞式的方法;</span></p><p><span style="font-family:Microsoft YaHei; font-size:14px">   |--客户端如果发过来数据,那么服务端哟呵使用对应的客户端对象,并获取客户端的读取流发过来的数据;并打印在控制台上;</span></p><p><span style="font-family:Microsoft YaHei; font-size:14px">|--关闭服务;(可选操作)</span></p></blockquote></blockquote></blockquote><h2><span style="font-family:Microsoft YaHei; font-size:18px">4、代码实现</span></h2><div><span style="font-family:Microsoft YaHei"></span><pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:14px;">import java.io.*;
import java.net.*;
/*
客户端
*/
class TcpClient
{
	public static void main(String[] args) throws Exception
	{
//		Socket(String host, int port) 
		Socket s = new Socket("192.168.1.101",10003);
//		拿到了Socket中的输出流,
		OutputStream out = s.getOutputStream();
//		把字符串变成字符数组写出去;发送到对应的主机上
		out.write("ge men lai le".getBytes());
		s.close();
	}
}

/*
服务端
*/
class TcpServer
{
	public static void main(String[] args) throws Exception
	{
//		ServerSocket(int port)
//		建立服务端socket服务,并监听一个端口
		ServerSocket ss = new ServerSocket(10003);
//		accept是阻塞式的,通过accept方法获取连接过来的客户端对象;
//		服务端没有流对象;
		Socket s = ss.accept();
//		获取IP地址
		String ip = s.getInetAddress().getHostAddress();
//
		System.out.println(ip+"......connected");
//		获取客户端发过来的数据,那么要使用客户端对象的读取流数据;
		InputStream in = s.getInputStream();
//		创建一个缓冲区把数据存起来
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		System.out.println(new String(buf,0,len));

		s.close();//关闭客户端。服务端要关闭对方
		ss.close();
	}
}</span>
 

5、运行结果

6、TCP传输的原理

7、TCP传输二

需求:演示TCP的传输的客户端和服务端的互访,就是客户端给服务端发送数据,服务端收到后,给客户端反馈信息;
客户端
步骤:
|--建立Socket服务,指定要连接主机主机和端口
|--获取Socket流中的输出流,将数据写到该流中,通过网络发送给服务端;
|--获取Socket流中的输入流,将服务端凡客的数据获取到,并打印;
|--关闭客户端资源;

代码体现

<span style="font-family:Microsoft YaHei;">import java.io.*;
import java.net.*;
class TcpClient2 
{
	public static void main(String[] args) throws Exception
	{
		Socket s = new Socket("192.168.1.101",10004);
//		拿到输出流对象
		OutputStream out = s.getOutputStream();
//		写入数据
		out.write("服务端,hi好".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 TcpServer2 
{
	public static void main(String[] args) throws Exception
	{
		ServerSocket ss = new ServerSocket(10004);
//		拿到客户端对象
		Socket s = ss.accept();
//		拿到客户端的IP地址
		String ip = s.getInetAddress().getHostAddress();
		System.out.println(ip+".....connected");
//		读取客户端的数据
		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("哥们收到,客户端也好".getBytes());
		s.close();
		ss.close();
	}
}</span>

运行结果

第四部分

我的总结

|--网络通讯要素:
|--IP地址
|--端口
|--传输协议,国际组织定义了通用协议 TCP/IP

|--UDP需要将数据封装成包,是面向无连接的;

|--UDP的速度快,但是容易丢包

|--聊天就是UDP的,如飞秋,QQ和凌波,视频会议等;-->步话机,对讲机

|--TCP传送是可靠的;但是稍微有点慢,-->打电话,下载

|--凡是带着端口和地址的都是用来定义发送数据包的;

|--Socket主要是记住的是流程,第一步做什么,第二步做什么。。。
|--在建立UDP的接收服务的时候,通常会要监听一个端口,其实就是给这个网络应用程序定义一个数字标识;方便于明确哪些数据过来,该应用程序可以处理;
|--在UDP里面是面向无连接的,因此先开启哪个都是无所谓的;
|--在TCP里面,通路只要一建立,Socket流本身就已经存在了,只需要通过里面的方法拿到里面的输入或者输出流就能有这个流对象,通路有了以后就有了流对象了;
|--打电话的时候就是TCP传输,有听筒和话筒,我向我的话筒里面说,你用你的听筒听到了,你用你的话筒说话,我用我的听筒听到了东西;
|--在TCP里面是面向连接的,所以必须要先启动服务端,要先启动;
JAVA 网络编程 文章目录1. 网络编程2.计算机网络基础知识2.1 计算机网络:2.2 网络通讯的要素2.3 IP地址2.3.1 IP地址的分配2.3.2 IP地址的分类3. 端 口4. 常用默认端口5.网络通信协议/接口6. OSI的七层模型7. TCP协议8. IP协议(Internet Protocol/因特网互联协议)是网络上的计算机进行连接的基础9. TCP/IP协议9.1 InetAddressSoc... 阅读详情

相关推荐

芯片良率提升:从设计到制造的系统性工程实践

在半导体制造领域,良率是衡量生产效率和成本控制的核心指标,直接关系到芯片的经济效益与市场竞争力。其本质是合格芯片占总产出芯片的百分比,提升良率需要从设计源头到制造末端的全流程协同优化。从技术原理看,它涉及可制造性设计、工艺过程控制、缺陷检测与根因分析等多个复杂环节,尤其在先进制程下,随机缺陷和参数变异成为主要挑战。其技术价值不仅在于降低单颗芯片成本,更能加速产品上市、保障可靠性,并成为企业技术实力的关键体现。应用场景贯穿智能手机、数据中心、自动驾驶和人工智能等所有高端芯片领域。本文将结合【芯片制造】与【良率

weixin_42526068的博客 634

【Java网络编程详解】

Java网络编程是开发分布式应用程序的重要技能,它通过套接字(Socket)进行数据传输,支持TCP和UDP协议。本文将介绍Java网络编程的基础知识,包括Socket、ServerSocket、TCP通信、UDP通信、常用类和示例代码。网络编程是指在计算机之间通过网络进行数据传输和通信的编程方式。Java提供了强大的java.net包,封装了底层的网络协议,简化了网络编程。:面向连接,可靠传输,保证数据按序到达,适合文件传输、Web通信等。:面向无连接,不可靠但速度快,适合视频通话、广播消息等。

武帝为此的博客 958

Sentinel-1 Burst数据处理避坑实录:从aria2c报错到wget脚本救场

本文详细介绍了Sentinel-1 Burst数据处理的完整解决方案,从下载困境到高效处理技巧。针对aria2c报错等常见问题,提供了增强版wget脚本和智能分组方法,显著提升下载成功率和处理效率,特别适合科研机构和企业级网络环境下的哨兵数据处理需求。

weixin_42641998的博客 284

Java网络编程

Java网络编程 1、网络编程 1.1、概述 1、计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程。 2、Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。 3、Java提供的网络类库,可以实现无痛的网络连

laizhenghua的博客 1万+

SUMO仿真教程(1) ——安装环境的设置(Windows 10系统)

SUMO安装环境的设置 目录一.SUMO下载的官方网址二.下载步骤:三.环境设置:1.打开设置环境变量的界面2.用户(Administrator)变量设置3.系统变量设置四.总述 一.SUMO下载的官方网址 sumo的下载地址: 二.下载步骤: 1.以sumo1.8.0为示例进行演示,点击下载地址; 2.选择Windows64位的安装版本,如下图所示: 3.点击对应版本会跳转到如下图所示的界面,等待几秒后会自动下载(温馨提示:请将下载路径提前设置好): 4.到目标存储路径下查看下载完成的SUMO(本

weixin_50632459的博客 1万+

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1061

Java语言的网络编程

Java网络编程是一个庞大而复杂的领域,从基本的Socket编程到高级的HTTP处理,Java提供了丰富的工具和类库供开发者使用。了解并掌握Java网络编程,可以帮助开发者构建可靠、高效的网络应用。随着技术的不断发展,网络编程的方法和工具也在不断进步,开发者应保持学习的热情与敏锐的观察力,跟上时代的步伐。希望通过本文的讲解,能帮助您对Java网络编程有更深的理解和认识。无论是构建简单的客户端-服务器模型,还是开发复杂的Web应用,Java都能提供强大的支持。

xiaocaibao777的博客 1219

告别盲打:为NXOpen Python API生成智能代码提示的完整指南

本文提供了一份为NXOpen Python API生成智能代码提示的完整指南。通过配置匹配的Python环境、利用类型存根文件生成工具创建.pyi文件,并在PyCharm或VSCode中正确配置,开发者可以彻底告别“盲打”,获得精准的代码补全和参数提示,从而大幅提升NX二次开发的效率和体验。

weixin_29057695的博客 372

Java—— 网络编程

什么是网络编程 常见软件架构 网络编程三要素:IP:InetAddress。端口号。协议:UDP协议,TCP协议

zjy_ccccc的博客 1254

上海交大计算机保研面试 2026:3类专项计划与10个联培方向深度解析

本文深度解析2026年上海交通大学计算机保研面试的3类专项计划与10个联培方向,包括区块链技术、智能计算系统和网络安全专项,以及蚂蚁科技、苏州智研院等联培基地。文章详细介绍了各专项的核心课程、硬件资源和就业去向,为计算机专业学生提供全面的申请策略和职业发展建议。

weixin_31528001的博客 397

基于ADRC算法的多旋翼飞行器抗扰动控制实践

本文详细介绍了基于ADRC算法的多旋翼飞行器抗扰动控制实践,通过线性扩张状态观测器(LESO)实时估算风力等扰动,实现提前补偿,显著提升飞行稳定性。文章结合具体案例和工程实现技巧,展示了ADRC在突风条件下的优异表现,为无人机控制提供了高效解决方案。

weixin_29284885的博客 193

Java基础之Java网络编程详解

网络编程是现代软件开发中不可或缺的一部分,它通过网络实现了计算机之间的通信,使得信息交换和数据共享成为可能。在网络通信的实现过程中,语言的选择和工具的使用至关重要,而Java提供了强大的支持,使得开发者可以更便捷地构建网络应用程序。网络通信的核心是数据的发送与接收,而Java的网络编程模型为此提供了一套易用且高效的工具。无论是点对点的通信,还是基于更复杂协议的多节点交互,Java都能满足需求。在网络编程中,基础的通信模式是基于Socket的点对点连接,它可以实现客户端和服务器之间的直接通信。

道可道非常道 2068

EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)

结构盒是 EPLAN 中用于标识元件安装位置的逻辑容器,非实际设备或黑盒,仅用于原理图中划分功能区域或物理位置(如 “柜内”“柜外”)。标识符设置:在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),完整格式为 “= 高层代号 + 位置代号”;筛选与定位:通过 “筛选器” 按类别(如电机、接触器)快速查找设备,右键 “转到(图形)” 可高亮定位图纸中的元件;设备保护:重要设备可启用保护(【项目数据】→【设备】→【启用设备保护】),防止误删除(显示橙色圆圈标记)。

电工 1060

【Java 基础】Java 网络编程

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

激流丶的博客 1890

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

十二、Java网络编程

文章目录十二、Java网络编程1.网络编程入门1.1 网络编程概述【理解】1.2 网络编程三要素【理解】1.3 IP地址【理解】1.4InetAddress【应用】1.5端口和协议【理解】2.UDP通信程序2.1 UDP发送数据【应用】2.2UDP接收数据【应用】2.3UDP通信程序练习【应用】3.TCP通信程序3.1TCP发送数据【应用】3.2TCP接收数据【应用】3.3TCP通信程序练习【应用】3.4TCP通信程序练习【应用】3.5TCP通信程序练习【应用】3.6TCP通信程序练习【应用】3.7TCP通

汪随安的博客 2919

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

12 java网络编程

网络编程章节,主要是把IO流的知识使用在网络上,用于网络传输。 网络传输其实也是一种IO流的方式。

qq_34106499的博客 416

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java 之网络编程

本文详细讲解了 Java 网络编程的基础知识和实战代码,包括 TCP 和 UDP 的区别、网络编程的三要素以及使用 Socket 和 DatagramPacket 类实现网络通信。希望这些内容能够帮助各位看官深入了解 Java 网络编程。

weixin_64178283的博客 1834

Java 网络编程

Java通过java.net和java.nio包提供网络编程支持,支持TCP和UDP协议。TCP使用Socket实现可靠连接通信,包含ServerSocket(服务端)和Socket(客户端);UDP通过DatagramSocket实现无连接通信。示例代码展示了基本的TCP/UDP服务端与客户端实现流程,包括建立连接、数据收发等关键步骤。此外,Java还提供HttpURLConnection类专门处理HTTP协议通信,可方便地发起HTTP请求。这些API为开发网络应用提

weixin_73916358的博客 564
上一篇: Java-IO流
下一篇: Java-反射
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值