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

建设网站建站公司上海网站seo优化

建设网站建站公司,上海网站seo优化,合肥seo网站建设,小公司网站开发这一篇文章我们将讲述网络编程中UDP服务器客户端的编程代码 1、前置知识 UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。 UDP的特点有:无连接、尽最大努力交付、面向报文、没有拥塞控制 本文讲…

这一篇文章我们将讲述网络编程中UDP服务器客户端的编程代码

1、前置知识

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。

UDP的特点有:无连接、尽最大努力交付、面向报文、没有拥塞控制

本文讲的回响服务器是指客户端向服务器发送一个报文,从服务器那里得到一条一模一样的回响报文

该代码需要在同一个包下创建两个类,服务器UdpEchoServer类,客户端UdpEchoClient类

2、服务器端代码

(1)完整代码

先放上完整代码

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.nio.charset.StandardCharsets;public class UdpEchoServer {public static DatagramSocket socket = null;public UdpEchoServer(int port) throws SocketException {//手动指定服务器端口号socket = new DatagramSocket(port);}public static void start() throws IOException {while (true){System.out.println("服务器启动");DatagramPacket requestPacket = new DatagramPacket(new byte[1024],1024);socket.receive(requestPacket);String request = new String(requestPacket.getData(),0,requestPacket.getLength());String response = process(request);DatagramPacket responsePacket = new DatagramPacket(response.getBytes(),response.getBytes().length,requestPacket.getSocketAddress());socket.send(responsePacket);System.out.printf("[%s:%d] req:%s,resp:%s",requestPacket.getAddress(),requestPacket.getPort(),request,response);System.out.println();}}public static String process(String request){return request;}public static void main(String[] args) throws IOException {UdpServer server = new UdpServer(9090);server.start();}}

(2)代码讲解

构造方法中手动指定服务器端口号

public UdpEchoServer(int port) throws SocketException {//手动指定服务器端口号socket = new DatagramSocket(port);
}

start()方法中进行信息的接收、处理、发送 

public static void start() throws IOException {while (true){System.out.println("服务器启动");//创建接收报文,用socket进行接收请求报文DatagramPacket requestPacket = new DatagramPacket(new byte[1024],1024);socket.receive(requestPacket);//将请求报文转化为请求字符串,用process()方法进行处理,得到响应字符串String request = new String(requestPacket.getData(),0,requestPacket.getLength());String response = process(request);//将得到的响应字符串转化为响应报文,并用socket进行发送DatagramPacket responsePacket = new DatagramPacket(response.getBytes(),response.getBytes().length,requestPacket.getSocketAddress());socket.send(responsePacket);//打印客户端IP地址和端口号信息System.out.printf("[%s:%d] req:%s,resp:%s",requestPacket.getAddress(),requestPacket.getPort(),request,response);System.out.println();}
}

process()方法

直接返回接收到的字符串

public static String process(String request){return request;
}

3、 客户端代码

 (1)完整代码

import java.io.IOException;
import java.net.*;
import java.util.Scanner;public class UdpEchoClient {public static DatagramSocket socket = null;private static String ip = null;private static int port = 0;public UdpEchoClient(String ip,int port) throws SocketException {//系统自动为客户端分配端口socket = new DatagramSocket();this.ip = ip;this.port = port;}public static void start() throws IOException {System.out.println("客户端启动!");Scanner scanner = new Scanner(System.in);while (true){System.out.print("->");String request = scanner.next();DatagramPacket requestPacket = new DatagramPacket(request.getBytes(),request.getBytes().length, InetAddress.getByName(ip),port);socket.send(requestPacket);DatagramPacket responsePacket = new DatagramPacket(new byte[1024],1024);socket.receive(responsePacket);String response = new String(responsePacket.getData(),0,responsePacket.getLength());System.out.println(response);}}public static void main(String[] args) throws IOException {UdpEchoClient client = new UdpEchoClient("127.0.0.1",9090);client.start();}
}

(2)代码讲解

客户端由于可能有多个,所以需要系统自动为客户端分配端口

当初始化socket时,客户端还需要记下服务器端的ip和端口 

public static DatagramSocket socket = null;
private static String ip = null;
private static int port = 0;public UdpEchoClient(String ip,int port) throws SocketException {//系统自动为客户端分配端口socket = new DatagramSocket();//记录ip和端口号this.ip = ip;this.port = port;
}

start()方法 

public static void start() throws IOException {System.out.println("客户端启动!");Scanner scanner = new Scanner(System.in);while (true){System.out.print("->");String request = scanner.next();//将读取到的字符串转化为请求报文,并用socket进行发送DatagramPacket requestPacket = new DatagramPacket(request.getBytes(),request.getBytes().length, InetAddress.getByName(ip),port);socket.send(requestPacket);//创建回应报文来接收响应DatagramPacket responsePacket = new DatagramPacket(new byte[1024],1024);socket.receive(responsePacket);//将响应报文转换成字符串,并打印出来String response = new String(responsePacket.getData(),0,responsePacket.getLength());System.out.println(response);}
}

http://www.yidumall.com/news/73625.html

相关文章:

  • 自己做儿童衣服教程的网站注册城乡规划师好考吗
  • 三水网站制作怎么发外链
  • 漂亮网站首页 html武汉关键词排名推广
  • 制作网站要多久百度搜索推广方案
  • 网站接入服务商千锋教育课程
  • 免费做链接的网站官网百度
  • 永久个人自助建站长沙seo招聘
  • h5开发网站优点南京高端品牌网站建设
  • 企业官网网站优化公司搜索引擎优化公司
  • 重庆医院门户网站建设怎么做网站赚钱
  • 南昌网站制作代理商游戏推广论坛
  • 网站 ca证书怎么做重庆seo排名软件
  • 做网站建设网站制作沧州seo包年优化软件排名
  • 网站宣传的传统方式有哪些网站关键词排名seo
  • 浪漫网站建设怎么让百度搜出自己
  • 一个网站做三个关键词中国今天新闻最新消息
  • 如何设计制作一般企业网站上海网络营销seo
  • 企业知识库wordpress上海专业优化排名工具
  • 网站建设_网站设计 app制作写软文
  • 学做网站需要多久时间杭州今天查出多少阳性
  • 网站建设应用技术友情链接发布平台
  • 拼多多seo是什么意思周口seo
  • 电商网站 设计2024年3月新冠高峰
  • 厦门外贸网站找谁百度权重工具
  • 手机版网站做一下多少钱新品怎么刷关键词
  • 网页源代码怎么修改免费检测网站seo
  • 网站建设的战略作用如何免费开自己的网站
  • 中国空间网站软文营销是什么
  • 怎么在主机上的建设网站神马网站快速排名案例
  • 张掖做网站公司深圳市seo上词贵不贵