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

自学python的网站微信公众平台运营中心电话

自学python的网站,微信公众平台运营中心电话,基础网站建设的实施步骤,定制型网站开发网络编程 两台设备之间通过网络实现数据传输#xff0c;将数据通过网络从一台设备传输到另一台设备 网络 两台或多台设备通过一定物理设备连接起来构成了网络 网络又分为: 局域网:覆盖范围最小#xff0c;仅仅覆盖一个教室或一个机房城域网:覆盖范围较大#xff0c;可以…网络编程 两台设备之间通过网络实现数据传输将数据通过网络从一台设备传输到另一台设备 网络 两台或多台设备通过一定物理设备连接起来构成了网络 网络又分为: 局域网:覆盖范围最小仅仅覆盖一个教室或一个机房城域网:覆盖范围较大可以覆盖一个城市广域网:覆盖范围最大可以覆盖全国甚至全球万维网是广域网的代表 ip 地址 用于唯一标识网络中的每台计算机/主机 查看ip地址: ipconfig 域名 为了方便记忆解决记ip的困难 将ip地址映射成域名——HTTP协议 端口号 用于标识计算机上某个特定的网络程序以整数形式端口范围0~65535[2个字节表示端口 0~2^16-1]其中0~1024已经被占用 常见的网络程序端口号 tomcat: 8080 mysql: 3306 oracle: 1521 sqlserver: 1433 ssh: 22 ftp: 21 smtp: 25 http: 80 网络通信协议 TCP/IP (Transmission Control Protocol/Internet Protocol) 的简写中文译名为传输控制协议/因特网互联协议又叫网络通讯协议这个协议是lnternet最基本的协议、Internet国际互联网络的基础简单地说就是由网络层的IP协议和传输层的TCP协议组成的。 TCP协议:传输控制协议 使用TCP协议前,须先建立TCP连接,形成传输数据通道传输前,采用“三次握手方式,是可靠的TCP协议进行通信的两个应用进程: 客户端、服务端在连接中可进行大数据量的传输传输完毕需释放已建立的连接, 效率低 UDP协议:用户数据协议 将数据、源、目的封装成数据包,不需要建立连接每个数据报的大小限制在64K内,不适合传输大量数据因无需连接,故是不可靠的发送数据结束时无需释放资源(因为不是面向连接的)速度快 InetAddress 方法 getLocalHost 获取本机InetAddress对象 getByName 根据指定主机名/域名获取ip地址对象 getHostName 获取InetAddress对象的主机名 getHostAddress 获取InetAddress对象的地址 public static void main(String[] args) throws UnknownHostException {//1. 获取本机的InetAddress 对象InetAddress localHost InetAddress.getLocalHost();System.out.println(localHost);//DESKTOP-S4MP84S/192.168.12.1//2. 根据指定主机名 获取 InetAddress对象InetAddress host1 InetAddress.getByName(DESKTOP-S4MP84S);System.out.println(host1 host1);//DESKTOP-S4MP84S/192.168.12.1//3. 根据域名返回 InetAddress对象, 比如 www.baidu.com 对应InetAddress host2 InetAddress.getByName(www.baidu.com);System.out.println(host2 host2);//www.baidu.com / 110.242.68.4//4. 通过 InetAddress 对象获取对应的地址String hostAddress host2.getHostAddress();//IP 110.242.68.4System.out.println(host2 对应的ip hostAddress);//110.242.68.4//5. 通过 InetAddress 对象获取对应的主机名/或者的域名String hostName host2.getHostName();System.out.println(host2对应的主机名/域名 hostName); // www.baidu.com }Socket 通信的两端都要有Socket是两台机器间通信的端点网络通信其实就是Socket间的通信。 Socket允许程序把网络连接当成一个流数据在两个Socket间通过IO传输。 TCP ServerSocket 可以通过 accept() 返回多个Socket[多个客户端连接服务器的并发] 字节流 /*** 客户端*/ public class SocketTCP01Client {public static void main(String[] args) throws IOException {//1. 连接服务端 (ip , 端口//解读: 连接本机的 9999端口, 如果连接成功返回Socket对象// 如果链接网络第一个参数可以改为IPSocket socket new Socket(InetAddress.getLocalHost(), 9999);System.out.println(客户端 socket返回 socket.getClass());//2. 连接上后生成Socket, 通过socket.getOutputStream()// 得到 和 socket对象关联的输出流对象OutputStream outputStream socket.getOutputStream();//3. 通过输出流写入数据到 数据通道outputStream.write(hello, server.getBytes());//4. 关闭流对象和socket, 必须关闭outputStream.close();socket.close();System.out.println(客户端退出.....);} }/*** 服务端*/ public class SocketTCP01Server {public static void main(String[] args) throws IOException {//1. 在本机 的9999端口监听, 等待连接// 细节: 要求在本机没有其它服务在监听9999// 细节这个 ServerSocket 可以通过 accept() 返回多个Socket[多个客户端连接服务器的并发]ServerSocket serverSocket new ServerSocket(9999);System.out.println(服务端在9999端口监听等待连接..);//2. 当没有客户端连接9999端口时程序会 阻塞, 等待连接// 如果有客户端连接则会返回Socket对象程序继续Socket socket serverSocket.accept();System.out.println(服务端 socket socket.getClass());////3. 通过socket.getInputStream() 读取客户端写入到数据通道的数据, 显示InputStream inputStream socket.getInputStream();//4. IO读取byte[] buf new byte[1024];int readLen 0;while ((readLen inputStream.read(buf)) ! -1) {System.out.println(new String(buf, 0, readLen));//根据读取到的实际长度显示内容.}//5.关闭流和socketinputStream.close();socket.close();serverSocket.close();// 最后也需要关闭} }字节流2 /*** 服务端*/ SuppressWarnings({all}) public class SocketTCP02Server {public static void main(String[] args) throws IOException {//思路//1. 在本机 的9999端口监听, 等待连接// 细节: 要求在本机没有其它服务在监听9999// 细节这个 ServerSocket 可以通过 accept() 返回多个Socket[多个客户端连接服务器的并发]ServerSocket serverSocket new ServerSocket(9999);System.out.println(服务端在9999端口监听等待连接..);//2. 当没有客户端连接9999端口时程序会 阻塞, 等待连接// 如果有客户端连接则会返回Socket对象程序继续Socket socket serverSocket.accept();System.out.println(服务端 socket socket.getClass());////3. 通过socket.getInputStream() 读取客户端写入到数据通道的数据, 显示InputStream inputStream socket.getInputStream();//4. IO读取byte[] buf new byte[1024];int readLen 0;while ((readLen inputStream.read(buf)) ! -1) {System.out.println(new String(buf, 0, readLen));//根据读取到的实际长度显示内容.}//5. 获取socket相关联的输出流OutputStream outputStream socket.getOutputStream();outputStream.write(hello, client.getBytes());// 设置结束标记socket.shutdownOutput();//6.关闭流和socketoutputStream.close();inputStream.close();socket.close();serverSocket.close();//关闭} }/*** 客户端发送 hello, server 给服务端*/ SuppressWarnings({all}) public class SocketTCP02Client {public static void main(String[] args) throws IOException {//思路//1. 连接服务端 (ip , 端口//解读: 连接本机的 9999端口, 如果连接成功返回Socket对象Socket socket new Socket(InetAddress.getLocalHost(), 9999);System.out.println(客户端 socket返回 socket.getClass());//2. 连接上后生成Socket, 通过socket.getOutputStream()// 得到 和 socket对象关联的输出流对象OutputStream outputStream socket.getOutputStream();//3. 通过输出流写入数据到 数据通道outputStream.write(hello, server.getBytes());// 设置结束标记socket.shutdownOutput();//4. 获取和socket关联的输入流. 读取数据(字节)并显示InputStream inputStream socket.getInputStream();byte[] buf new byte[1024];int readLen 0;while ((readLen inputStream.read(buf)) ! -1) {System.out.println(new String(buf, 0, readLen));}//5. 关闭流对象和socket, 必须关闭inputStream.close();outputStream.close();socket.close();System.out.println(客户端退出.....);} }字符流 /*** 客户端发送 hello, server 给服务端 使用字符流*/ SuppressWarnings({all}) public class SocketTCP03Client {public static void main(String[] args) throws IOException {//思路//1. 连接服务端 (ip , 端口//解读: 连接本机的 9999端口, 如果连接成功返回Socket对象Socket socket new Socket(InetAddress.getLocalHost(), 9999);System.out.println(客户端 socket返回 socket.getClass());//2. 连接上后生成Socket, 通过socket.getOutputStream()// 得到 和 socket对象关联的输出流对象OutputStream outputStream socket.getOutputStream();//3. 通过输出流写入数据到 数据通道, 使用字符流BufferedWriter bufferedWriter new BufferedWriter(new OutputStreamWriter(outputStream));bufferedWriter.write(hello, server 字符流);bufferedWriter.newLine();//插入一个换行符表示写入的内容结束, 注意要求对方使用readLine()!!!!bufferedWriter.flush();// 如果使用的字符流需要手动刷新否则数据不会写入数据通道//4. 获取和socket关联的输入流. 读取数据(字符)并显示InputStream inputStream socket.getInputStream();BufferedReader bufferedReader new BufferedReader(new InputStreamReader(inputStream));String s bufferedReader.readLine();System.out.println(s);//5. 关闭流对象和socket, 必须关闭bufferedReader.close();//关闭外层流bufferedWriter.close();socket.close();System.out.println(客户端退出.....);} }/*** 服务端, 使用字符流方式读写*/ SuppressWarnings({all}) public class SocketTCP03Server {public static void main(String[] args) throws IOException {//思路//1. 在本机 的9999端口监听, 等待连接// 细节: 要求在本机没有其它服务在监听9999// 细节这个 ServerSocket 可以通过 accept() 返回多个Socket[多个客户端连接服务器的并发]ServerSocket serverSocket new ServerSocket(9999);System.out.println(服务端在9999端口监听等待连接..);//2. 当没有客户端连接9999端口时程序会 阻塞, 等待连接// 如果有客户端连接则会返回Socket对象程序继续Socket socket serverSocket.accept();System.out.println(服务端 socket socket.getClass());////3. 通过socket.getInputStream() 读取客户端写入到数据通道的数据, 显示InputStream inputStream socket.getInputStream();//4. IO读取, 使用字符流, 老师使用 InputStreamReader 将 inputStream 转成字符流BufferedReader bufferedReader new BufferedReader(new InputStreamReader(inputStream));String s bufferedReader.readLine();System.out.println(s);//输出//5. 获取socket相关联的输出流OutputStream outputStream socket.getOutputStream();// 使用字符输出流的方式回复信息BufferedWriter bufferedWriter new BufferedWriter(new OutputStreamWriter(outputStream));bufferedWriter.write(hello client 字符流);bufferedWriter.newLine();// 插入一个换行符表示回复内容的结束bufferedWriter.flush();//注意需要手动的flush//6.关闭流和socketbufferedWriter.close();bufferedReader.close();socket.close();serverSocket.close();//关闭} }字节流传输文件 /*** 文件上传的客户端*/ public class TCPFileUploadClient {public static void main(String[] args) throws Exception {//客户端连接服务端 8888得到Socket对象Socket socket new Socket(InetAddress.getLocalHost(), 8888);//创建读取磁盘文件的输入流//String filePath e:\\qie.png;String filePath e:\\abc.mp4;BufferedInputStream bis new BufferedInputStream(new FileInputStream(filePath));// 把文件读到字符数组中!!!!!// bytes 就是filePath对应的字节数组byte[] bytes StreamUtils.streamToByteArray(bis);//通过socket获取到输出流, 将bytes数据发送给服务端BufferedOutputStream bos new BufferedOutputStream(socket.getOutputStream());bos.write(bytes); //将文件对应的字节数组的内容写入到数据通道bis.close();socket.shutdownOutput(); //设置写入数据的结束标记//接收从服务端回复的消息InputStream inputStream socket.getInputStream();//使用StreamUtils 的方法直接将 inputStream 读取到的内容 转成字符串String s StreamUtils.streamToString(inputStream);System.out.println(s);//关闭相关的流inputStream.close();bos.close();socket.close();} }/*** 文件上传的服务端*/ public class TCPFileUploadServer {public static void main(String[] args) throws Exception {//1. 服务端在本机监听8888端口ServerSocket serverSocket new ServerSocket(8888);System.out.println(服务端在8888端口监听....);//2. 等待连接Socket socket serverSocket.accept();//3. 读取客户端发送的数据// 通过Socket得到输入流BufferedInputStream bis new BufferedInputStream(socket.getInputStream());byte[] bytes StreamUtils.streamToByteArray(bis); // 已然读到数组中了//4. 将得到 bytes 数组写入到指定的路径就得到一个文件了String destFilePath src\\abc.mp4;BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(destFilePath));bos.write(bytes);bos.close();// 向客户端回复 收到图片// 通过socket 获取到输出流(字符)BufferedWriter writer new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));writer.write(收到图片);writer.flush();//把内容刷新到数据通道socket.shutdownOutput();//设置写入结束标记//关闭其他资源writer.close();bis.close();socket.close();serverSocket.close();} }public class StreamUtils {/*** 功能将输入流转换成byte[]* param is* return* throws Exception*/public static byte[] streamToByteArray(InputStream is) throws Exception{ByteArrayOutputStream bos new ByteArrayOutputStream();//创建输出流对象byte[] b new byte[1024];int len;while((lenis.read(b))!-1){bos.write(b, 0, len);// 读取道德数据写入bos}byte[] array bos.toByteArray();bos.close();return array;}/*** 功能将InputStream转换成String* param is* return* throws Exception*/public static String streamToString(InputStream is) throws Exception{BufferedReader reader new BufferedReader(new InputStreamReader(is));StringBuilder builder new StringBuilder();String line;while((linereader.readLine())!null){ //当读取到 null时就表示结束builder.append(line\r\n);}return builder.toString();}}UDP 类 DatagramSocket 和 DatagramPacket[数据包/数据报]实现了基于UDP协议网络程序 UDP数据报通过数据报套接字DatagramSocket 发送和接收系统不保证UDP数据报一定能够安全送到也不能确定什么时候可以抵达 DatagramPacket 对象封装了UDP数据报在数据报中包含了发送端的IP地址和端口号以及接收端的IP地址和端口号 UDP协议中每个数据报都给出了完整的地址信息因此无须建立发送方和接收方的连接 /*** UDP接收端*/ public class UDPReceiverA {public static void main(String[] args) throws IOException {//1. 创建一个 DatagramSocket 对象准备在9999接收数据DatagramSocket socket new DatagramSocket(9999);//2. 构建一个 DatagramPacket 对象准备接收数据// 一个数据包最大 64kbyte[] buf new byte[1024];DatagramPacket packet new DatagramPacket(buf, buf.length);//3. 调用 接收方法, 将通过网络传输的 DatagramPacket 对象// 填充到 packet对象// 如果没有数据包发送到 本机的9999端口, 就会阻塞等待.System.out.println(接收端A 等待接收数据..);socket.receive(packet);//4. 可以把packet 进行拆包取出数据并显示.int length packet.getLength();//实际接收到的数据字节长度byte[] data packet.getData();//接收到数据String s new String(data, 0, length);System.out.println(s);//回复信息给B端//将需要发送的数据封装到 DatagramPacket对象data 好的, 明天见.getBytes();//说明: 封装的 DatagramPacket对象 data 内容字节数组 , data.length , 主机(IP) , 端口packet new DatagramPacket(data, data.length, InetAddress.getByName(192.168.12.1), 9998);socket.send(packet);//发送//5. 关闭资源socket.close();System.out.println(A端退出...);} }/*** 发送端B 也可以接收数据*/ SuppressWarnings({all}) public class UDPSenderB {public static void main(String[] args) throws IOException {//1.创建 DatagramSocket 对象准备在9998端口 接收数据DatagramSocket socket new DatagramSocket(9998);//2. 将需要发送的数据封装到 DatagramPacket对象byte[] data hello 明天吃火锅~.getBytes(); ////说明: 封装的 DatagramPacket对象 data 内容字节数组 , data.length , 主机(IP) , 端口DatagramPacket packet new DatagramPacket(data, data.length, InetAddress.getByName(192.168.12.1), 9999);socket.send(packet);//3. 接收从A端回复的信息//(1) 构建一个 DatagramPacket 对象准备接收数据byte[] buf new byte[1024];packet new DatagramPacket(buf, buf.length);//(2) 调用 接收方法, 将通过网络传输的 DatagramPacket 对象// 填充到 packet对象// 如果没有数据包发送到 本机的9998端口, 就会阻塞等待.socket.receive(packet);//(3) 可以把packet 进行拆包取出数据并显示.int length packet.getLength();//实际接收到的数据字节长度data packet.getData();//接收到数据String s new String(data, 0, length);System.out.println(s);//关闭资源socket.close();System.out.println(B端退出);} }netstat netstat -an 可以查看当前主机网络情况包括项口监听情况和网络连接情况netstat -an | more 可以分页显示netstat -anb 在管理员状态下运行可以查看是哪些应用监听该端口。外部地址就是 连接 该本地地址和端口号的客户端的IP和端口号。 注意 Listening表示某个端口在监听 Established 表示连接已经建立 如果有一个外部程序(客户端)连接到该端口就会显示一条连接信息 当客户端连接到服务端后实际上客户端也是通过一个端口和服务端进行通讯的这个端口是TCP/IP来分配的是不确定的是随机的
http://www.dnsts.com.cn/news/144677.html

相关文章:

  • 个人网站模板设计步骤wordpress 缓存 收录
  • 可以浏览国外网站旅游网站开发的目的和意义
  • 店铺网站建设策划书新云自助建站
  • 订阅号怎么做免费的视频网站收益网站制作
  • 北京朝阳区二手房出售湖北seo推广
  • 如何进行外贸网站建设网站推广的基本方法是哪四个
  • 可信网站认证必须做wordpress前端用户中心
  • 腾讯云建站流程百度竞价最低点击一次多少钱
  • ih5做的网站怎么上传网络销售怎么做才能有业务
  • 中山做网站做的好的公司去掉wordpress标题中竖线
  • 做2手物品通过网站去卖掉好做吗2014 个人网站备案
  • 珠海网站策划公司华为企业邮箱
  • 中国诚信建设网站中企动力邮箱登陆
  • 网站开发维护合同模板电子版腾讯云注册域名后怎么做网站
  • 网站意见反馈源码muse to wordpress
  • 济南快速建站模板网站有可能搜不到吗
  • 可以帮别人备案网站吗新白鹿网络营销方式
  • 无锡市城乡和住房建设局网站甘肃省住房与城乡建设厅网站
  • 网站建设在线网站建设界面建议
  • 太原城市建设招标网站免登录直接玩的游戏
  • 滁州市住房城乡建设部网站哈尔滨做网站电话
  • 广告公司网站设计策划书电子商务网站建设代码
  • 淄博网站关键词优化wordpress换域名了 登陆不了
  • 吉祥物在线设计网站厦门的网站建设公司
  • 临淄哪里做网站网站后台怎么建设
  • dedecms网站上传wordpress汉化主题
  • 珠海网站制作哪家便宜二手车交易市场
  • 免费做网站通栏广告连云港网站建设多少钱
  • 公司网站建设包括哪些东西爱网站
  • 海口网站建设方案报价网站设计哪家最好