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

北京梦创义网站建设w3 wordpress

北京梦创义网站建设,w3 wordpress,郑州小程序开发费用,商务网站建设注意事项1.DatagramSocket API Socket是操作系统中的一个概念 本质上是一种特殊的文件 Socket就属于是把"网卡"这个设备,抽象成文件了 往Socket文件中写数据,就相当于通过网卡发送数据 从Socket文件读数据,就相当于通过网卡接受数据 在Java中就使用DatagramSocket这个类…

1.DatagramSocket API

Socket是操作系统中的一个概念

本质上是一种特殊的文件

Socket就属于是把"网卡"这个设备,抽象成文件了

往Socket文件中写数据,就相当于通过网卡发送数据

从Socket文件读数据,就相当于通过网卡接受数据

在Java中就使用DatagramSocket这个类,来表示系统内部的Socket文件了

2.DatagramPacket API

使用这个类,表示一个UDP数据报

UDP是面向数据报的

每次传输,都要以UDP数据报为基本单位

3.代码

服务器

package network;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;//服务器
public class UdpEchoServer {//创建一个DataSocket对象,后续操作网卡的基础private DatagramSocket socket = null;public UdpEchoServer(int port) throws SocketException {socket = new DatagramSocket(port);//此时socket对象就能绑定到这个指定的端口//服务器和客户端都需要创建Socket对象//但是服务器的socket一般要显示指定一个端口号//而客户端的socket一般不能显示指定(不显示指定,此时系统会自动分配一个随机的端口}public void start() throws IOException {//通过这个方法来启动服务器System.out.println("服务器启动!");//一个服务程序中,经常能看到while true 这样的代码while(true){//1.读取请求并解析DatagramPacket requestPacket = new DatagramPacket(new byte[4096], 4096);socket.receive(requestPacket);//当前完成receive之后,数据是以二进制的形式存储到DatagramPacket中了//要想能够把这里的数据给显示出来,还需要把这个二进制数据给转成字符串String request = new String(requestPacket.getData(),0, requestPacket.getLength());//取getData这个数组里面0到getLength这个区间内的字节,构造成一个String//2.根据请求计算响应(一般的服务器都会经历的过程)//这个步骤是服务器程序最核心的步骤,但是现在这是一个回显服务器,就直接把请求当作响应就行String response = process(request);//3.把响应写回到客户端//搞一个响应对象,DatagramPacket//往DatagramPacket里构造刚才的数据,再通过send返回DatagramPacket responsePacket = new DatagramPacket(response.getBytes(),response.getBytes().length, requestPacket.getSocketAddress());//构造这个数据包,指定数据内容,再指定数据包要发给谁socket.send(responsePacket);//4.打印一个日志,把这次数据交换的详情打印出来System.out.printf("[%s:%d] req=%S, resp=%s\n", requestPacket.getAddress().toString(),requestPacket.getPort(), request, response);}}public String process (String request){return request;}public static void main(String[] args) throws IOException {UdpEchoServer server  = new UdpEchoServer(9090);server.start();}
}

客户端

package network;import java.io.IOException;
import java.net.*;
import java.util.Scanner;//客户端
public class UdpEchoClient {private DatagramSocket socket = null;private String serverIP = "";private int serverPort = 0;public UdpEchoClient(String ip ,int port) throws SocketException {//创建这个对象,不能手动指定端口socket = new DatagramSocket();//由于UDP自身不会持有对端的信息,就需要在应用程序里,把对端的情况给记录下来//这里咱们主要记录对端的ip和端口serverIP = ip;serverPort = port;}public void start() throws IOException {System.out.println("客户端启动");Scanner scanner = new Scanner(System.in);while(true){//从控制台读取一个数据,作为请求System.out.println("->");String request = scanner.next();//2.把请求内容构造成DatagramPacket对象,发给服务器.DatagramPacket requestPacket = new DatagramPacket(request.getBytes(), request.getBytes().length, InetAddress.getByName(serverIP), serverPort);socket.send(requestPacket);//3.尝试读取服务器返回的响应DatagramPacket responsePacket = new DatagramPacket(new byte[4096], 4096);socket.receive(responsePacket);//4.把响应转换成字符串,并显示出来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();}}

为什么此处不用close?


文章转载自:

http://m9ApAw40.ynrzf.cn
http://z2VLsQjD.ynrzf.cn
http://MQoZm1WA.ynrzf.cn
http://q2E8HG0W.ynrzf.cn
http://DxgUJDk7.ynrzf.cn
http://oLfavstF.ynrzf.cn
http://CBuAyWXm.ynrzf.cn
http://r8B2MH6U.ynrzf.cn
http://ZLFfBO2S.ynrzf.cn
http://dT8OoDa5.ynrzf.cn
http://WnWFnUoc.ynrzf.cn
http://lMXv7gKW.ynrzf.cn
http://VwRnktDI.ynrzf.cn
http://V1vPJwZz.ynrzf.cn
http://3x8MBaf2.ynrzf.cn
http://NoQYskHj.ynrzf.cn
http://TfBLJtu4.ynrzf.cn
http://nqPOwx3T.ynrzf.cn
http://9dJ4NLee.ynrzf.cn
http://D66tUA0f.ynrzf.cn
http://bh5MyfAc.ynrzf.cn
http://fafU9tO9.ynrzf.cn
http://slX6Rqlh.ynrzf.cn
http://3DPcrSbr.ynrzf.cn
http://JmrJq2Lz.ynrzf.cn
http://1vmmfJAa.ynrzf.cn
http://rGaCsl0A.ynrzf.cn
http://lVTb1J69.ynrzf.cn
http://l7xFNSfQ.ynrzf.cn
http://K7uvH3kh.ynrzf.cn
http://www.dtcms.com/wzjs/719180.html

相关文章:

  • 行业垂直网站开发自定义导航网站 源码
  • 百度免费网站制作wordpress中文模板
  • 网站建设公司的服务公司网站域名重定向怎么做
  • 怎么修改网站默认首页中国企业500强山东
  • 知名小蚁人网站建设wordpress导入媒体查看
  • 网站的百度推广怎么做的哪些网站容易被百度收录
  • 搜索大全引擎入口网站wordpress设置会员时效
  • 手表网站 欧米茄wordpress免签支付插件
  • 岭南地区网站建设12306网站花多少钱做的
  • 织梦免费企业模板网站新中式装修风格样板房
  • wordpress网站百度收录首页湖南营销型网站建设 A磐石网络
  • 自己给公司做网站该怎么做外包加工拿货网
  • 网站建设需要做的事情详情页模板 套用
  • 免费企业网站建立wordpress 视差模板
  • 使用网站的mysql房地产网络营销方式
  • 如何优化公司网站网页版网易云游戏
  • 如何申请免费网站域名河南造价信息网官网
  • ipad网站制作网站刷新代码
  • 网站建设-应酷网络营销的特点和职能
  • 手机免费网站网站流量图片生成
  • 如何与网站管理员联系西宁做网站是什么
  • 做网站怎么维护美容美发网站模板
  • 网站统计源码软件开发培训机构多少钱
  • 网站建设平台价格手机网站 域名解析
  • 网站建设主管装饰公司起名大全免费
  • 龙华学校网站建设杨凌区住房和城乡建设局网站
  • 九州娱乐官方网站怎么做代理wordpress说明
  • 全校网站建设与管理wordpress修改分类标题
  • 网站右侧返回顶部怎么注销网站查备案
  • 中山网络公司网站建设网站表单模板