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

建筑图纸网站diy建站系统

建筑图纸网站,diy建站系统,短视频seo排名系统,自适应网站制作教程目录基础知识查询IP地址端口通信协议TCP实现聊天TCP实现文件上传UDPUDP实现聊天UDP多线程在线咨询URL下载网络资源基础知识 请自行翻阅《计算机网络》 查询IP地址 import java.net.InetAddress; import java.net.UnknownHostException;public class TestInetAddress {public… 目录基础知识查询IP地址端口通信协议TCP实现聊天TCP实现文件上传UDPUDP实现聊天UDP多线程在线咨询URL下载网络资源基础知识 请自行翻阅《计算机网络》 查询IP地址 import java.net.InetAddress; import java.net.UnknownHostException;public class TestInetAddress {public static void main(String[] args) {try {//查询本机地址InetAddress inetAddress1 InetAddress.getByName(127.0.0.1);System.out.println(inetAddress1);InetAddress inetAddress3 InetAddress.getByName(localhost);System.out.println(inetAddress3);InetAddress inetAddress4 InetAddress.getLocalHost();System.out.println(inetAddress4);// 查询网站地址InetAddress inetAddress2 InetAddress.getByName(www.baidu.com);System.out.println(inetAddress2);//常用方法System.out.println(inetAddress2.getHostAddress());//ipSystem.out.println(inetAddress2.getHostName());//域名或者自己的电脑的名字} catch (UnknownHostException e) {e.printStackTrace();}} } 输出 /127.0.0.1 localhost/127.0.0.1 LAPTOP-HPLQ0BU1/192.168.137.1 www.baidu.com/183.232.231.172 183.232.231.172 www.baidu.com 端口 端口表示计算机的一个程序的进程任务管理器里面有个PID(PortID)。不同的进程有不同的端口号用来区分软件。 TCP端口和UDP端口各有65535个所以一台计算机的端口号总数是65535*2。假如你TCP用了80UDP也可以用80因为这两协议不冲突。 端口分类 公有端口0~1023 HTTP80 HTTPS443 FTP21 Telent23程序注册端口1024~49151分配给用户或者程序 Tomcat8080 MySQL3306 Oracle1521动态、私有端口49152~65535 IDEA网页的默认端口是63342 DOS命令 netstat -ano Dos命令 #查看所有的端口 netstat -ano fiandstr “5590” #查看指定的端口 tasklist|finderstr “8696” #查看指定端口的进程 import java.net.InetSocketAddress;public class TestInetSocketAddress {public static void main(String[] args) {InetSocketAddress socketAddress new InetSocketAddress(127.0.0.1, 8080);InetSocketAddress socketAddress2 new InetSocketAddress(localhost, 8080);System.out.println(socketAddress);System.out.println(socketAddress2);System.out.println(socketAddress.getAddress());System.out.println(socketAddress.getHostName());//地址、在这里面改C:\Windows\System32\drivers\etc\hostsSystem.out.println(socketAddress.getPort());//端口} }结果 /127.0.0.1:8080 localhost/127.0.0.1:8080 /127.0.0.1 127.0.0.1 8080 通信协议 详见《计算机网络》 TCP/IP协议簇实际上是一组协议 重要的两个 TCP用户传输协议,就像打电话需要建立连接通了才能聊天。UDP用户数据报协议好比发短信发出去就不管了。 有两个出名的协议所以才叫TCP/IP协议簇 TCP用户传输协议IP网络互连协议 TCP实现聊天 客户端 通过Socket连接服务器发送消息 import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket;//客户端 public class TcpClientDemo01 {public static void main(String[] args) {Socket socket null;OutputStream os null;try {//1.要知道服务器的地址InetAddress serverIP InetAddress.getByName(127.0.0.1);int port 9999;//2.创立一个socket连接socket new Socket(serverIP, port);//3.发送消息 IO流os socket.getOutputStream();os.write(你好世界.getBytes());} catch (Exception e) {e.printStackTrace();} finally {//关闭资源先关IOif (os ! null) {try {os.close();} catch (IOException e) {e.printStackTrace();}}if (socket ! null) {try {socket.close();} catch (IOException e) {e.printStackTrace();}}}} }服务端 建立服务的端口 ServerSocket等待用户的链接 accept接收用户的消息 //服务端 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket;public class TcpServerDemo01 {public static void main(String[] args) {// 一开始就定义这些是为了提升作用域不定义的话被包裹在try块里无法在finally里调用closeServerSocket serverSocket null;Socket socket null;InputStream is null;ByteArrayOutputStream baos null;try {//1.我得有一个地址serverSocket new ServerSocket(9999);while (true) {//2.等待客户端连接过来socket serverSocket.accept();//3.读取客户端的消息is socket.getInputStream();//管道流baos new ByteArrayOutputStream();byte[] buffer new byte[1024];int len;while ((len is.read(buffer)) ! -1) {baos.write(buffer, 0, len);}System.out.println(baos.toString());}} catch (IOException e) {e.printStackTrace();} finally {//关闭资源if (baos ! null) {try {baos.close();} catch (IOException e) {e.printStackTrace();}}if (is ! null) {try {is.close();} catch (IOException e) {e.printStackTrace();}}if (socket ! null) {try {socket.close();} catch (IOException e) {e.printStackTrace();}}if (serverSocket ! null) {try {serverSocket.close();} catch (IOException e) {e.printStackTrace();}}}} }由于服务端使用whiletrue不停地监听所以启动一次客户端服务器端就会收到客户端不断启动或者重复不断发送服务端也会不停地收到。 TCP实现文件上传 客户端 import java.io.*; import java.net.InetAddress; import java.net.Socket;public class TcpClientDemo02 {public static void main(String[] args) throws Exception {//1.创建一个Socket连接Socket socket new Socket(InetAddress.getByName(127.0.0.1), 9000);//2.创建一个输出流OutputStream os socket.getOutputStream();//3.读取文件FileInputStream fis new FileInputStream(new File(G:\\360MoveData\\Users\\cheng\\Desktop\\杂项\\daxiong1.png));//4.写出文件byte[] buf new byte[1024];int len;while ((len fis.read(buf)) ! -1) {os.write(buf, 0, len);}//通知服务器我已经结束了socket.shutdownOutput();//我已经传输完了(socket通知)//确定服务器接收完毕才能够断开连接InputStream inputStream socket.getInputStream();//String byte[]ByteArrayOutputStream baos new ByteArrayOutputStream();byte[] buf2 new byte[1024];int len2;while ((len2 inputStream.read(buf2)) ! -1) {baos.write(buf2, 0, len2);}System.out.println(baos.toString());//5.关闭资源,先开后关baos.close();inputStream.close();fis.close();os.close();socket.close();} }服务端 import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket;public class TcpServerDemo02 {public static void main(String[] args) throws Exception {//1.创建服务ServerSocket serverSocket new ServerSocket(9000);//2.监听客户端的连接Socket socket serverSocket.accept();//阻塞式监听会一直监听(等待客户端连接)//3.获取输入流InputStream is socket.getInputStream();//4.文件输出FileOutputStream fos new FileOutputStream(new File(receive.jpg));byte[] buffer new byte[1024];int len;while ((len is.read(buffer)) ! -1) {fos.write(buffer, 0, len);}//通知客户端我接收完毕了OutputStream os socket.getOutputStream();os.write(我接受完毕了你可以断开了.getBytes());//关闭资源fos.close();is.close();socket.close();serverSocket.close();} }UDP 发送端 import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress;public class UdpSenderDemo01 {public static void main(String[] args) throws Exception {//1.建立一个SocketDatagramSocket socket new DatagramSocket();//2.建个包String msg 你好啊接收端;//发送给谁InetAddress localhost InetAddress.getByName(localhost);int port 9090;DatagramPacket packet new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, localhost, port);//3.发送包socket.send(packet);//4.关闭流socket.close();} }接收端 import java.net.DatagramPacket; import java.net.DatagramSocket;public class UdpReceiverDemo01 {public static void main(String[] args) throws Exception {//还是要等待发送端的链接//开放端口DatagramSocket socket new DatagramSocket(9090);//接收数据包byte[] buffer new byte[1024];DatagramPacket packet new DatagramPacket(buffer, 0, buffer.length);//接收socket.receive(packet);//阻塞接收System.out.println(packet.getAddress().getHostAddress());System.out.println(new String(packet.getData(), 0, packet.getLength()));//关闭连接socket.close();} }UDP实现聊天 发送端 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress;public class UdpSenderDemo02 {public static void main(String[] args) throws IOException {DatagramSocket socket new DatagramSocket(8888);//准备数据控制台读取 System.inBufferedReader reader new BufferedReader(new InputStreamReader(System.in));while (true) {String data reader.readLine();byte[] datas data.getBytes();DatagramPacket packet new DatagramPacket(datas, 0, datas.length, new InetSocketAddress(localhost, 6666));socket.send(packet);if (data.equals(bye)) {break;}}socket.close();} }接收端 import java.net.DatagramPacket; import java.net.DatagramSocket;public class UdpReceiverDemo02 {public static void main(String[] args) throws Exception {DatagramSocket socket new DatagramSocket(6666);while (true) {//准备接收包裹byte[] container new byte[1024];DatagramPacket packet new DatagramPacket(container, 0, container.length);socket.receive(packet);//断开连接byte[] data packet.getData();//String receiveData new String(data, 0, data.length,UTF-8);String receiveData new String(data, 0,packet.getLength(),UTF-8);System.out.println(receiveData);if (receiveData.equals(bye)) {break;}}socket.close();} } UDP多线程在线咨询 双方既可以是发送方也可以是接收方所以要使用多线程 发送方线程 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketException;public class TalkSend implements Runnable {DatagramSocket socket null;BufferedReader reader null;private int fromPort;private String toIP;private int toPort;public TalkSend(int fromPort, String toIP, int toPort) {this.fromPort fromPort;this.toIP toIP;this.toPort toPort;try {socket new DatagramSocket(fromPort);reader new BufferedReader(new InputStreamReader(System.in));} catch (SocketException e) {e.printStackTrace();}}Overridepublic void run() {while (true) {try {String data reader.readLine();byte[] datas data.getBytes();DatagramPacket packet new DatagramPacket(datas, 0, datas.length, new InetSocketAddress(toIP, toPort));socket.send(packet);if (data.equals(bye)) {break;}} catch (IOException e) {e.printStackTrace();}}socket.close();} }接收方线程 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException;public class TalkReceive implements Runnable {DatagramSocket socket null;private int port;private String msgFrom;public TalkReceive(int port, String msgFrom) {this.port port;this.msgFrom msgFrom;try {socket new DatagramSocket(port);} catch (SocketException e) {e.printStackTrace();}}Overridepublic void run() {while (true) {try {//准备接收包裹byte[] container new byte[1024];DatagramPacket packet new DatagramPacket(container, 0, container.length);socket.receive(packet);//断开连接byte[] data packet.getData();String receiveData new String(data, 0, packet.getLength());System.out.println(msgFrom : receiveData);if (receiveData.equals(bye)) {break;}} catch (IOException e) {e.printStackTrace();}}socket.close();} }创建线程-学生 public class TalkStudent {public static void main(String[] args) {//开启两个线程new Thread(new TalkSend(7777, localhost, 9999)).start();new Thread(new TalkReceive(8888, 老师)).start();} }创建线程-老师 public class TalkTeacher {public static void main(String[] args) {//开启两个线程new Thread(new TalkSend(5555, localhost, 8888)).start();new Thread(new TalkReceive(9999, 学生)).start();} }URL下载网络资源 URL同一资源定位符、定位资源的定位互联网上的某一个资源 URL一般格式 协议 : //ip地址 : 端口号 / 项目名 / 资源 URL类demo import java.net.MalformedURLException; import java.net.URL;public class URLDemo01 {public static void main(String[] args) throws MalformedURLException {URL url new URL(http://localhost:8080/helloword/index.jsp?username123password123);System.out.println(url.getProtocol());//协议System.out.println(url.getHost());//主机ipSystem.out.println(url.getPort());//端口System.out.println(url.getPath());//文件地址System.out.println(url.getFile());//文件全路径System.out.println(url.getQuery());//参数} }使用URL下载网络资源 import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL;public class UrlDownload {public static void main(String[] args) throws Exception {//1.下载地址URL url new URL(http://localhost:8080/test/ok.txt);//2.连接到这个资源HttpURLConnection urlConnection (HttpURLConnection) url.openConnection();InputStream inputStream urlConnection.getInputStream();FileOutputStream fos new FileOutputStream(okok.txt);byte[] buffer new byte[1024];int len;while ((len inputStream.read(buffer)) ! -1) {fos.write(buffer, 0, len);//写出这个数据}fos.close();inputStream.close();urlConnection.disconnect();//断开连接} }
http://www.yutouwan.com/news/466369/

相关文章:

  • 用h5做网站是什么意思网站建设公司 提成
  • 公司网站的制作公司网页设计师在什么公司工作
  • 好孩子官方网站王建设余姚网站公司
  • 手机app网站模板下载兰州网站排名外包
  • 网站建设项目目标描述网站做百度地图怎么做呢
  • 广告传媒公司的网站应该怎么做网站开发好不好
  • 江苏建科建设监理有限公司网站网站关键词优化排名软件系统
  • 网站seo优化要怎么做h5网站开发流程图
  • win7用本地文件做网站模板阜阳手机网站建设
  • 百度上搜不到做的网站网上建网站
  • 网站登陆界面psd成都摄影网站建设
  • 天津市建设交易中心网站wordpress管理员登陆
  • 灌云网站建设维护大气门户网站
  • 泰安的网站建设公司wordpress多语言包
  • 网站域名怎么弄福州网站建设的公司哪家好
  • 做淘宝客优惠券网站必须是企业吗品牌关键词优化
  • 网站栏目策划方案萍乡公司做网站
  • 阿里云怎么创建网站最有实权的十大部门
  • 传奇网站怎么建设文件管理系统
  • 给企业做网站的业务员濮阳网站建设通图片
  • 如何修改asp网站佛山网站制作专家
  • 网站建设分工方案怀化网站建设公司
  • 网站被攻击的方法网业游戏大全
  • 公众出行服务网站建设加盟网大全
  • 做网站好赚钱万网主机怎么上传网站
  • 赣州兼职网站建设四川采集app
  • 瑞安网站建设优化网站快照是什么
  • 为何只有建设银行网站打不开联系方式 响应式网站
  • 网站 概念设计如何进行网页设计和网站制作
  • 物流网站设计易购商城网站怎么做啊