网络编程

java网络编程之application/x-www-form-urlencoded MIME

那年仲夏 提交于 2019-12-04 14:36:49
URLEncoder 和 URLDecoder 用于完成 普通字符串 和 application/x-www-form-urlencoded MIME字符串 之间的相互转换. 编码和解码: 在 Web的浏览器 中,不同的浏览器的编码和解码规则是不一样的. 对于 W3C浏览器 :遵循W3C组织规范的浏览器,(非IE). 编码:byte[] data = “杨哥”.getByte(String charsetName); 解码:String str = new String(data, String charsetName); 对于 IE浏览器 : 编码使用的application/x-www-form-urlencoded MIME机制. import java.net.URLDecoder; import java.net.URLEncoder; public class URLecodeDemo { public static void main(String[] args) throws Exception { String name = "杨哥 sunshine"; //编码 String encode = URLEncoder.encode(name, "UTF-8"); System.out.println(encode);//%E6%9D%A8%E5%93%A5

Python连载51-网络编程基础知识

北城以北 提交于 2019-12-04 14:30:44
一、网络编程 1.网络、网络协议(一套规则) 2.网络模型: (1)七层模型-七层 物理层(比如网线、锚)、数据链路层(比如电压电流)、网络层、传输层、会话层、表示层、应用层(我们的活动基本都在这一层) (2)四层模型 链路层、网络、传输层、应用层 (3)每一层都有相应的协议负责交换信息或者协同工作 (4)TCP/IP协议族 (5)IP地址:负责在网络上唯一定位一个机器 i.IP地址分为ABCD类 ii.IP地址是由四个数字段组成的,每个数字段的取值为0-255 例如:192.168.xxx.xxx:局域网ip 127.0.0.1代表本机 IPV4、IPV6 iii.端口: 范围:0-65535 知名端口:0-1023 非知名端口:1024-655535 (6)TCP/UDP协议 UDP:非安全的不面向链接的传输 i.安全性差;ii.大小限制为64kb;iii.没有顺序;iv.速度块 TCP:基于链接的通信 (7)SOCKET编程 i.socket(套接字):是一个网络通信的端点,能实现不同主机进程通信,网络大多基于socket通信 ii.通过IP+端口定位对方并发送信息的通信机制 iii.分为UDP和IP ​二、源码 2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿) 3.博客园:https://www.cnblogs

网络编程--发送接收

孤者浪人 提交于 2019-12-04 13:27:51
package mymenu; import java.net.*; public class PracticeUsed { public static void main(String[] args) throws Exception { // 1 创建udp服务 , 通过DategramSocket(); DatagramSocket ds = new DatagramSocket(); // 2 确定数据 、 封装成数据包 byte[] data = "udp ge men lai le ".getBytes(); DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getByName("199.234.8.61"),10000); // 3 通过socket服务 将已有的数据包发送出去、通过send方法 ds.send(dp); // 4 关闭资源 //----------------------------------上面是发送端、接收端未开 } } class udpRece { } /* * 通过UDP传输、将一段数据发送出去 * 思路: * 1:建立 udpSocket服务 * 2:提供数据、并将数据封装到数据包中 * 3:通过Socket服务的发送功能,将数据包发出去 * 4

拿Erlang来拯救谁?---Erlang学习总结一

試著忘記壹切 提交于 2019-12-04 12:43:48
工作中主要使用C/C++作为开发语言。 也曾在PHP,JAVA,JS, LUA 上逗留过,但对它们,我没有花费过多的精力。部分原因可能是由于工作不能实际使用这些语言来开发项目,而我的理解是它们对我的吸引力还不够。 但是,当我偶遇上了Erlang,一见如故人,竟然能完全满足我在梦中试图用C++无数次勾勒的形象,甚至是让我惊艳的。 于是,借着Armstrong先生的《面对软件错误构建可靠的分布式系统》和《Erlang程序设计》,与这一故人已畅谈两星期有余。 Erlang为什么吸引我?现做一理性总结: 1. Erlang的动态类型,模式匹配,基于消息,面向并发的纯函数式开发范式( 由这些特性直接导出以下几点); 2. 据说,Erlang开发效率是C/C++的9倍(待验证); 3. 用C/C++开发服务端,我需要纠结于采用什么网络库,或是重头造轮子自己搞一套,还要对数据解包打包等等其他一些基础设施做封装,然后才能开始业务代码的编写,而Erlang把这一切都搞定了(IO能力已得到我的验证),我可以一开始就编写业务相关代码; 4. 用C++编码,我要用层层的try-catch块包裹正常的功能代码,而这样看起来总是让人厌烦,Erlang倡导的速错哲学让我完全不用关心什么地方会有未捕获的异常抛出把我的程序弄崩了; 5. 用C++,有N多个类都有Init(),Start(),Stop()

网络编程学习

孤者浪人 提交于 2019-12-04 10:33:39
UDP的使用 public class A { public static void main(String[] args) throws IOException { new Thread() { @Override public void run() { System.out.println("服务器已经开启,等待接收数据...."); try { DatagramSocket ds = new DatagramSocket(9999); while (true) { byte[] bytes = new byte[1024]; DatagramPacket dp = new DatagramPacket(bytes, bytes.length); ds.receive(dp); //取出数据报包中的数据 byte[] data = dp.getData(); int length = dp.getLength(); //从发来的数据报包中,也可也取出发送者的IP InetAddress address = dp.getAddress(); String hostAddress = address.getHostAddress(); //取出发送者的ip String s = new String(data, 0, length); System.out.println("B:"

Qt基于 HTTP 的网络编程

断了今生、忘了曾经 提交于 2019-12-04 06:13:32
HTTP(超文本传输协议 Hyper Text Transfer Protocol)   基于TCP/IP通信协议,属于应用层协议。 使用情况:   HTTP是无连接(无连接的含义是限制每次连接只处理一个请求)   HTTP是媒体独立的(只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送)   HTTP是无状态协议(无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息) 工作原理:   HTTP协议工作于客户端-服务端架构上。   HTTP客户端(浏览器)通过URL 向 HTTP服务端(WEB服务器)发送所有请求。   HTTP默认端口号为80,但是你也可以改为8080或者其他端口。 HTTP编程 步: 工具:   使用Qt提供的网络模块QtNetwork;   使用Qt提供的类QNetworkAccessManager、QNetworkRequest、QNetworkReply。 代码:(后续补充) 来源: https://www.cnblogs.com/citrus/p/11835852.html

高级网络编程2

允我心安 提交于 2019-12-04 05:38:15
1.安装包 wireshart2.udp是可以广播的,tcp不行。广播用不好就会产生广播风暴3.广播是需要就用,不需要就不用二.tcp协议,传输控制协议。udp,用户数据报协议tcp是稳定,一定能够保证数据收到,相对于udp要慢一些web服务器,一般都是使用的tcp。tcp应用场景较多服务器:1.创建套接字 socket()2.绑定 bind()3.监听 listen() 讲主动套接字变为被动套接字4.accept() 接收,等待别人进行打电话客户端:socket()client()网络通信过程面试题:打开浏览器的过程,输入www.baidu.com 的过程packet tracer 的过程下载软件 windows XP professlonal1.两台电脑能通信的前提是在相同的网段里2.多台电脑为什么不能把网线连接在一起3.交换机和集线器同网之间可以进行通信,跨网之间不能进行通信路由器: 链接不同的网络mac地址在两个设备通信时,在变化。ip地址在整个通信中都不会变化mac地址就是手拉手之间传递数据用的,除了这个没什么用1.访问百度浏览器问题1.看有无网关2.看是ip还是域名访问,ip的话就是三次握手3.如果是域名,需要解析 baidu对应的ip地址4,使用arp获取默认网关的mac地址5.组织数据发送给默认网关6.默认网管拥有转发数据的能力,把数据转发给路由器7

D23_1.1_网络编程

一笑奈何 提交于 2019-12-04 04:59:42
#####网络编程##### """子网掩码和ip地址相与,得到网段,相同网段的两个主机才能够传输数据,子网掩码和ip都可以自己设置""" # 子网掩码: 255.255.255.0 => 11111111.11111111.11111111.00000000 # ip1: 192.168.10.12 => 11000000.10101000.00001010.00001100 # 子网掩码 & ip1 11000000.10101000.00001010.00000000 得到网段1:192.168.10.0 # ip2: 192.168.1.16 => 11000000.10101000.00000001.00010000 # 子网掩码 & ip2 11000000.10101000.00000001.00000000 得到网段2:192.168.1.0 # 网段不同,不能互相通信 # 子网掩码2: 255.255.0.0 # ip1 192.168.10.12 得到网段1:192.168.0.0 # ip2 192.168.1.16 得到网段2:192.168.0.0 # 网段相同,可以互相通信 # 常用端口 # IIS(HTTP):80 # MySQL:3306 # FTP:21 # SSH:22 来源: https://www.cnblogs.com

Python - Socket网络编程 - 第二十六天

会有一股神秘感。 提交于 2019-12-04 04:01:20
网络编程 Python 提供了两个级别访问的网络服务。: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。 什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 socket()函数 Python 中,我们用 socket()函数来创建套接字,语法格式如下: socket.socket([family[, type[, proto]]]) 参数 family: 套接字家族可以使AF_UNIX或者AF_INET type: 套接字类型可以根据是面向连接的还是非连接分为 SOCK_STREAM 或 SOCK_DGRAM protocol: 一般不填默认为0. Socket 对象(内建)方法 函数 描述 服务器端套接字 s.bind() 绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。 s.listen() 开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。 s

unix网络编程卷2 在solaris11上面运行出现ld: fatal: symbol referencing errors collect2: error: ld returned 1 exit status

有些话、适合烂在心里 提交于 2019-12-04 01:51:42
在saloris11上面运行出现上面问题,由于没有执行lib库的位置,比如我把libunpipc.a这个库放在了/usr/local下面,可以用-L来指定lib库的位置 来源: https://www.cnblogs.com/liumy11111/p/11827452.html