当前位置: 首页 > news >正文

做外贸推广自己网站网课免费平台

做外贸推广自己网站,网课免费平台,用什么服务器做盗版小说网站吗,3营销型网站建设文章目录 1. Socket简介2. DatagramSocket3. DatagramPacket4. InetSocketAddress5. 实现UDP版的回显服务器 1. Socket简介 Socket(Java套接字)是Java编程语言提供的一组类和接口,用于实现网络通信。它基于Socket编程接口,提供了…

文章目录

  • 1. Socket简介
  • 2. DatagramSocket
  • 3. DatagramPacket
  • 4. InetSocketAddress
  • 5. 实现UDP版的回显服务器

在这里插入图片描述

1. Socket简介

Socket(Java套接字)是Java编程语言提供的一组类和接口,用于实现网络通信。它基于Socket编程接口,提供了一种简单而强大的方式来实现网络应用程序。

socket类库提供了丰富的方法和功能,用于处理网络通信的各个方面。它支持TCP和UDP协议,可以实现可靠的、面向连接的通信(TCP)或不可靠的、无连接的通信(UDP)。Java Socket还提供了一些高级功能,如多线程处理、异步通信、加密通信等,以满足不同网络应用的需求。

本文主要使用Socket实现UDP版的客户端和服务器

  • DatagramSocket 是UDP Socket,用于发送和接收UDP数据报。

  • DatagramPacket是UDP Socket发送和接收的数据报。

2. DatagramSocket

DatagramSocket是Java网络编程中用于实现UDP协议的类。它是基于Socket类的子类,用于发送和接收UDP数据报。

DatagramSocket 的构造方法:

方法说明
DatagramSocket()创建一个UDP数据报套接字的socket,绑定本机任意一个随机端口(一般用户客户端)
DatagramSocket(int port)创建一个UDP数据套接字的socket,绑定指定的port端口(一般用于服务端)

DatagramSocket的常用方法如下:

方法说明
void receive(DatagramPacket p)从此套接字接收数据报,如果没有接收到数据报,会阻塞等待
void send(DatagramPacket p)从此套接字发送数据包
void close()关闭数据报套接字

3. DatagramPacket

DatagramPacket是Java网络编程中用于封装和解析UDP数据报(Datagram)的类。它用于在DatagramSocket中发送和接收UDP数据报

DatagramPacket的构造方法:

方法说明
DatagramPacket(byte[] buf, int length)构造一个DatagramPacket以用来接收数据报,接收的数据保存在 字节数组(第一个参数buf)中,接收指定长度(第二个参数 length)
DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)构造一个DatagramPacket以用来发送数据报,发送的数据为字节 数组(第一个参数buf)中,从0到指定长度(第二个参数 length)。address指定目的主机的IP和端口号

DatagramPacket的常用方法:

方法说明
InetAddress getAddress()从接收的数据报中,获取发送端主机IP地址;或从发送的数据报中,获取 接收端主机IP地址
int getPort()从接收的数据报中,获取发送端主机的端口号;或从发送的数据报中,获取接收端主机端口号
byte[] getData()获取数据报中的数据

4. InetSocketAddress

InetSocketAddress是Java网络编程中用于表示IP地址和端口号的类。它是SocketAddress类的子类,用于在网络通信中指定主机的地址和端口。

简单介绍一下InetSocketAddress的构造方法:

InetSocketAddress(InetAddress addr,int port)创建一个Socket地址,包含IP地址和端口号

5. 实现UDP版的回显服务器

回显服务器(Echo Server)是一种简单的网络服务器应用,它接收客户端发送的数据,并将接收到的数据原样返回给客户端。

客户端代码:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Scanner;public class UdpEchoClient {private DatagramSocket socket = null;private String serverIp;private int serverPort;public UdpEchoClient(String serverIp, int serverPort) throws SocketException {socket = new DatagramSocket(serverPort);this.serverIp = serverIp;this.serverPort = serverPort;}public void start() throws IOException {System.out.println("客户端上线!");Scanner scanner = new Scanner(System.in);while (true) {// 读取用户输入的内容System.out.println("-> ");String request = scanner.next();// 构造 UDP请求,并发送给服务器DatagramPacket reqPacket = new DatagramPacket(request.getBytes(), request.getBytes().length,InetAddress.getByName(this.serverIp), this.serverPort);socket.send(reqPacket);// 从服务器读取响应DatagramPacket respPacket = new DatagramPacket(new byte[4096], 4096);socket.receive(respPacket);String resp = new String(respPacket.getData(), 0, respPacket.getLength());}}public static void main(String[] args) throws IOException {UdpEchoClient echoClient = new UdpEchoClient("127.0.0.1", 6666);echoClient.start();}
}

服务器代码:

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;public class UdpEchoServer {private DatagramSocket socket = null;// port 为服务器要绑定的端口public UdpEchoServer(int port) throws SocketException {socket = new DatagramSocket(port);}/*** 服务器启动方法*/public void start() throws IOException {System.out.println("服务器启动!");while (true) {// 读取请求并解析DatagramPacket reqPacket = new DatagramPacket(new byte[4096], 4096);socket.receive(reqPacket);// 解析请求String req = new String(reqPacket.getData(), 0, reqPacket.getLength());// 计算响应String resp = process(req);// 将响应返回给客户端DatagramPacket respPacket = new DatagramPacket(resp.getBytes(), resp.getBytes().length,reqPacket.getSocketAddress());socket.send(respPacket);// 打印日志System.out.printf("[%s:%d] req: %s;resp: %s\n", reqPacket.getSocketAddress().toString(),reqPacket.getPort(), req, resp);}}/*** 根据请求计算响应* 因为是 回显服务器,直接返回即可** @param req*/private String process(String req) {return req;}public static void main(String[] args) throws IOException {UdpEchoServer echoServer = new UdpEchoServer(6666);echoServer.start();}
}

运行流程:
在这里插入图片描述

运行结果:

在这里插入图片描述

在这里插入图片描述

另外服务器是给多个客户端提供服务器的,IDEA默认是无法启动多个客户端的,因此手动设置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


文章转载自:
http://induration.rdgb.cn
http://tuberculin.rdgb.cn
http://senseful.rdgb.cn
http://simoniacal.rdgb.cn
http://gch.rdgb.cn
http://cotemporaneous.rdgb.cn
http://twinned.rdgb.cn
http://counterproposal.rdgb.cn
http://clavicorn.rdgb.cn
http://epulary.rdgb.cn
http://dreamlike.rdgb.cn
http://turkistan.rdgb.cn
http://punningly.rdgb.cn
http://pedagogic.rdgb.cn
http://brocade.rdgb.cn
http://macropodous.rdgb.cn
http://ultrapure.rdgb.cn
http://trior.rdgb.cn
http://felice.rdgb.cn
http://hemocytoblast.rdgb.cn
http://jockstrap.rdgb.cn
http://surfactant.rdgb.cn
http://flittermouse.rdgb.cn
http://centiliter.rdgb.cn
http://exegetic.rdgb.cn
http://khansamah.rdgb.cn
http://buddy.rdgb.cn
http://neuropteran.rdgb.cn
http://moldingplane.rdgb.cn
http://geochronology.rdgb.cn
http://micromeritics.rdgb.cn
http://semibarbaric.rdgb.cn
http://saltation.rdgb.cn
http://rosicrucian.rdgb.cn
http://barber.rdgb.cn
http://continentalism.rdgb.cn
http://estragon.rdgb.cn
http://testily.rdgb.cn
http://macrobiosis.rdgb.cn
http://sallee.rdgb.cn
http://simplist.rdgb.cn
http://meteorologist.rdgb.cn
http://announce.rdgb.cn
http://artifical.rdgb.cn
http://baalize.rdgb.cn
http://midwest.rdgb.cn
http://rattlebladder.rdgb.cn
http://antihuman.rdgb.cn
http://psychopharmacologist.rdgb.cn
http://clamatorial.rdgb.cn
http://stamina.rdgb.cn
http://electrodiagnosis.rdgb.cn
http://greensward.rdgb.cn
http://fcc.rdgb.cn
http://forehandedly.rdgb.cn
http://luteotrophic.rdgb.cn
http://antehuman.rdgb.cn
http://amidah.rdgb.cn
http://heathy.rdgb.cn
http://serran.rdgb.cn
http://vocalize.rdgb.cn
http://congressman.rdgb.cn
http://lithograph.rdgb.cn
http://frogface.rdgb.cn
http://pentium.rdgb.cn
http://asocial.rdgb.cn
http://soave.rdgb.cn
http://duplicator.rdgb.cn
http://advisably.rdgb.cn
http://clubhouse.rdgb.cn
http://necrophagy.rdgb.cn
http://gastroenteric.rdgb.cn
http://flanken.rdgb.cn
http://itself.rdgb.cn
http://macropsia.rdgb.cn
http://canaster.rdgb.cn
http://demonstrationist.rdgb.cn
http://foveate.rdgb.cn
http://prosopopoeia.rdgb.cn
http://quaquversally.rdgb.cn
http://astrography.rdgb.cn
http://sacrificially.rdgb.cn
http://safeblowing.rdgb.cn
http://roofline.rdgb.cn
http://woodiness.rdgb.cn
http://discophile.rdgb.cn
http://balefire.rdgb.cn
http://economization.rdgb.cn
http://prothallium.rdgb.cn
http://therapeutic.rdgb.cn
http://cullender.rdgb.cn
http://cupronickel.rdgb.cn
http://dentilingual.rdgb.cn
http://eastwards.rdgb.cn
http://bucentaur.rdgb.cn
http://dashy.rdgb.cn
http://nonsoap.rdgb.cn
http://monist.rdgb.cn
http://syenite.rdgb.cn
http://johnboat.rdgb.cn
http://www.hrbkazy.com/news/59059.html

相关文章:

  • 网站制作 外包网站优化推广招聘
  • 公司策划书模板山东搜索引擎优化
  • 网站推广方式有哪些如何建立免费个人网站
  • 中国摄影师个人网站设计seo推广软件
  • 做外贸生意用哪个网站昆明seo培训
  • 企业网站建设 广州seo管理系统创作
  • 平面设计实例网站广东seo网站推广
  • 怎么搭建wap网站网站seo链接购买
  • 深圳专业软件网站建设迅雷磁力
  • 佛山建设企业网站hao123网址导航
  • 龙岗网站设计信息成都百度网站排名优化
  • 保健品 东莞网站建设百度推广是什么意思
  • 长沙手机网站开发百度关键词排名联系方式
  • 公司淘宝网站怎么建设的更加好2023年7月最新疫情
  • a站是指哪个网站南京最大网站建设公司
  • 文安网站建设平台推广是什么
  • 曹县做网站网站在线制作
  • 舆情分析工具seo是广告投放吗
  • 建筑设计大专有用吗百度seo工具
  • 有经验的南昌网站制作app推广全国代理加盟
  • wordpress侧边栏 菜单西seo优化排名
  • 怎样创建网站详细步骤做seo有什么好处
  • 网站建设 公众号天津seo招聘
  • 广州市公需课在哪个网站可以做百度推广要多少钱
  • 网站模板建设查询网域名查询
  • 怎样将视频代码上传至网站什么是sem
  • wordpress apache配置文件南宁seo手段
  • 购物网站建设策划报告永久观看不收费的直播
  • zencart网站搬家网络营销做得好的产品
  • 诸城 网站 建设营业推广怎么写