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

建设网站建站公司网站策划书怎么写

建设网站建站公司,网站策划书怎么写,大庆做网站的公司,苏州网站建设开发这一篇文章我们将讲述网络编程中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.khdw.cn/news/14946.html

相关文章:

  • 可以做图接单的网站百度 营销推广怎么操作
  • 合肥 网站建设公司哪家好如何在百度上投放广告
  • 做刷网站域名注册购买
  • 重庆网站关键词排名西安网站推广排名
  • 企业展示型网站建设上海网站建设公司
  • 辽宁省建设教育协会网站湖南靠谱seo优化报价
  • 湖南企业app下载如何优化网络
  • 哪里做网站公司好网络营销推广机构
  • 互联网做网站的话术企业网站首页
  • 网站建设申请最新域名查询ip
  • 代理记账网站怎么做双11销量数据
  • 一站式网站建设平台长春百度网站优化
  • 重庆网站建设哪家公司好西安seo外包平台
  • 网站空间续费一年多少钱企业官网怎么做
  • 官方网站的资料做证据网店推广策划书
  • 大连 做 企业网站网络营销策划案例
  • 网页设计与网站建设第05免费拓客软件哪个好用
  • 电商网站开发经验外贸网站推广服务
  • 怎么在网站上做下载短视频剪辑培训班多少钱
  • 推广普通话活动方案宁波网站建设网站排名优化
  • 网站建设安全与威胁深圳seo外包
  • 网站制作的关键技术优化大师下载安装app
  • 西宁企业网站建设北京网站优化校学费
  • 哪里有做网站公司百度搜索引擎盘搜搜
  • 做海外贸易网站网站建设 全网营销
  • 高端全屋定制十大名牌排行榜债务优化是什么意思
  • 什么视频直播网站做挣钱品牌建设
  • 青岛网站建设q.479185700強爱站长尾词
  • 货运代理公司郑州seo网站排名
  • 律师做网站费用如何做好线上营销