中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

建設網站建站公司軟件外包公司有前途嗎

建設網站建站公司,軟件外包公司有前途嗎,網店設計與裝修,培訓學校網站建設方案這一篇文章我們將講述網絡編程中UDP服務器客戶端的編程代碼 1、前置知識 UDP協議全稱是用戶數據報協議,在網絡中它與TCP協議一樣用于處理數據包,是一種無連接的協議。 UDP的特點有:無連接、盡最大努力交付、面向報文、沒有擁塞控制 本文講…

這一篇文章我們將講述網絡編程中UDP服務器客戶端的編程代碼

1、前置知識

UDP協議全稱是用戶數據報協議,在網絡中它與TCP協議一樣用于處理數據包,是一種無連接的協議。

UDP的特點有:無連接、盡最大努力交付、面向報文、沒有擁塞控制

本文講的回響服務器是指客戶端向服務器發(fā)送一個報文,從服務器那里得到一條一模一樣的回響報文

該代碼需要在同一個包下創(chuàng)建兩個類,服務器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()方法中進行信息的接收、處理、發(fā)送?

public static void start() throws IOException {while (true){System.out.println("服務器啟動");//創(chuàng)建接收報文,用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進行發(fā)送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 {//系統(tǒng)自動為客戶端分配端口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)代碼講解

客戶端由于可能有多個,所以需要系統(tǒng)自動為客戶端分配端口

當初始化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 {//系統(tǒng)自動為客戶端分配端口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進行發(fā)送DatagramPacket requestPacket = new DatagramPacket(request.getBytes(),request.getBytes().length, InetAddress.getByName(ip),port);socket.send(requestPacket);//創(chuàng)建回應報文來接收響應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.risenshineclean.com/news/39772.html

相關文章:

  • 網站 php .net佛山網站建設排名
  • 建設一個網站app注冊推廣拉人
  • dw8做網站步驟圖銷售怎么找客戶源
  • 石家莊市和城鄉(xiāng)建設局網站今日頭條10大新聞
  • 書畫網站建設方案策劃百度公司電話是多少
  • 優(yōu)秀定制網站建設案例鎮(zhèn)江關鍵字優(yōu)化公司
  • 做網店好還是網站好鄭州網站優(yōu)化公司
  • 北京外包做網站如何報價杭州seo外包服務
  • 做pc端網站多少錢微信引流推廣怎么找平臺
  • 西安做網站南通公司開發(fā)一個平臺需要多少錢
  • 在線網站建設活動今天最新消息
  • 興義做網站網絡軟文推廣案例
  • 想學做網站可以在哪學百度手機網頁
  • wordpress 菜單保存在哪里設置寧波seo營銷平臺
  • 灤平縣建設局網站國際新聞快報
  • 深圳高端網站建設費用抖音seo推廣
  • 百度推廣入口登錄百度推廣關鍵詞怎么優(yōu)化
  • 電商網站競價推廣的策略上海知名網站制作公司
  • 途牛網站開發(fā)需求愛鏈
  • 合肥做網站怎么樣域名ip查詢入口
  • 點擊網站二次感染即將大爆發(fā)
  • 合肥網站制作模板推薦游戲代理平臺一天結一次
  • 學校介紹網站模板優(yōu)化設計六年級下冊數學答案
  • 四川網站建設培訓班銷售平臺有哪些
  • 如何做網站聯盟營銷湘潭網站設計外包服務
  • 做旅游計劃的網站西安百度公司地址介紹
  • 記事本做網站怎么不行啦網站建站價格
  • 龍華網站建設多少錢外貿營銷型網站制作公司
  • 遵義公司網站搭建多少錢北京seo招聘信息
  • web開發(fā)是做網站搜索引擎推廣培訓