网络编程
文章平均质量分 60
iw1210
这个作者很懒,什么都没留下…
展开
-
Vue 项目运行 npm run dev 命令时会报错:“'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序” 的解决办法
Vue 项目运行 npm run dev 命令时会报错:“'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序” 的解决办法对于已经创建的工程,如果删除了 node_modules 文件夹,当再运行 npm run dev 命令时会报错:“'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序”,解决办法如下。进入工程目录,比如 E:\...原创 2019-05-09 18:12:39 · 5550 阅读 · 0 评论 -
Linux系统测试端口连通性的方法
Linux系统测试端口连通性的方法有四种常用方法:1. telnet 方法2. wget 方法3. ssh 方法4. curl 方法下面一一介绍。1. telnet用法: telnet ip port(1)连接不存在的端口 telnet 1.1.1.1 8 Trying 1.1.1.1... telnet: connect原创 2017-12-19 21:03:30 · 3842 阅读 · 0 评论 -
SpringMVC用InitBinder注解实现表单多对象精准绑定接收
SpringMVC用InitBinder注解实现表单多对象精准绑定接收。要在一张表单中提交多个对象,并且还要在后台Controller中精准的绑定接收,可是,这些对象中可能有相同的参数名,如何做到精准绑定?后台接收入参时无法像Struts那样JSP表单中使用Object.Param形式对表单进行精准绑定入参,我们都知道Struts2默认就是这种方案,这是因为struts2采用了OGNL,并原创 2017-10-25 19:41:50 · 584 阅读 · 0 评论 -
几句话就理解 POJO、JavaBean、EJB、DAO、DTO、VO、PO、BO、DO
几句话就理解 POJO、JavaBean、EJB、DAO、DTO、VO、PO、BO1. POJOPOJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来的。按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译原创 2017-10-18 20:16:36 · 1171 阅读 · 0 评论 -
用 JSONP 实现跨域请求
用 JSONP 实现跨域请求参考:1. 轻松搞定JSONP跨域请求http://blog.csdn.net/u014607184/article/details/520278792. jsonp与JAVA的配合使用http://www.cnblogs.com/dream0530/p/6179819.html3. Jsonp和java操作例子htt原创 2017-09-26 20:06:09 · 390 阅读 · 0 评论 -
Linux环境下安装Node.js
Linux环境下安装Node.js1. 下载nodejs安装包如图下载 node-v5.12.0-linux-x64.tar.gz 。2. 解压压缩包#tar -xzvf node-v5.12.0-linux-x64.tar.gz3. 测试命令# cd node-v5.12.0-linux-x64# ./bin/node -vv5.12.04原创 2017-05-02 18:12:45 · 1013 阅读 · 0 评论 -
用wget命令的爬虫功能抓取网页到本地文件,然后用grep命令分析文件。
用wget命令的爬虫功能抓取网页到本地文件,然后用grep命令分析文件。1. 抓取网页到本地选择一个网页,比如 http://www.oschina.net/code/snippet_1391852_26067,用wget抓取到本地。$ wget http://www.oschina.net/code/snippet_1391852_26067原创 2016-10-04 00:40:23 · 3529 阅读 · 0 评论 -
排名前50个开源的Web爬虫
排名前50个开源的Web爬虫, 转自:http://www.open-open.com/lib/view/open1422112155796.html项目名 开发语言平台HeritrixJavaLinuxNutchJavaCross-platformScrapyPythonCross-platfo转载 2016-10-03 19:21:06 · 11702 阅读 · 0 评论 -
深入浅出讲解 NAT 和 UDP/TCP 点对点通讯
深入浅出讲解 NAT 和 UDP/TCP 点对点通讯转自:http://blog.csdn.net/g_brightboy/article/details/12704933一、什么是NAT?为什么要使用NAT?NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址。NAT的出现完美地解决了lP地址不足的转载 2016-08-14 15:07:43 · 10606 阅读 · 1 评论 -
在Linux上编译安装SRS直播服务器
在Linux上编译安装SRS直播服务器1. 下载SRS源代码网上有说这样下载:# git clone https://github.com/winlinvip/simple-rtmp-server可是下载的却是个仅有两个文件的文件夹simple-rtmp-server!# git clone https://github.com/winlinvip/simple-rtmp-se...原创 2016-08-01 17:00:11 · 16092 阅读 · 2 评论 -
Linux下查看端口被哪个进程占用
Linux下查看端口被哪个进程占用两种方法:1. 使用 lsof 命令【格式】 lsof -i:端口号【举例】# lsof -i:8080COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 48515 jira 65u IPv6 592780 0t0 TCP *:webca原创 2018-01-04 11:19:00 · 430 阅读 · 0 评论 -
在线工具列表
------- 在线工具列表 -------1. JS在线统计图表制作工具http://charts.udpwork.comhttps://www.tubiaoxiu.com2. Photoshop在线精简版http://www.uupoop.com原创 2018-03-30 10:42:45 · 1574 阅读 · 0 评论 -
前端用AJAX把数组传给后端控制器数组参数的方法
前端用AJAX把数组传给后端控制器数组参数的方法分两种情况:1. 数组元素是基本类型数据的数组。2. 数组元素是普通类对象的数组。下面分别讲解。一、数组元素是基本类型数据的数组这种情况比较简单,下面是示例代码。控制器代码:@Controller@RequestMapping(value = "testctrl") @ResponseBody @RequestMapping(value = "...原创 2018-03-27 19:28:28 · 3615 阅读 · 1 评论 -
用 IntelliJ IDEA 从零搭建一个最简单的 Vue 项目
用 IntelliJ IDEA 从零搭建一个最简单的 Vue 项目一、安装 Node.js注:如果已经安装过 Node.js 当然就不需要安装啦。下载地址:https://nodejs.org/en/download/。下载完成后安装。打开命令窗口执行下面两条命令查看是否安装成功:E:\> node -vv10.15.3E:\> npm -v6.4.1二、搭...原创 2019-05-09 18:05:24 · 10552 阅读 · 0 评论 -
Linux 下用 curl 命令访问 Elasticsearch(RESTful风格)
Linux 下用 curl 命令访问 Elasticsearch(RESTful风格)这里介绍用 PUT 方法和 GET 方法访问 Elasticsearch。1. 用PUT方法写数据示例说明:megacorp 是索引的名字,employee 是类型的名字,1和2是员工的ID。用 PUT 方法,下面两种形式都可以。第一种,把地址放在后面:# curl -H 'Content-T...原创 2019-04-28 18:10:59 · 2866 阅读 · 0 评论 -
用 Java 操作管理 Openfire(比如管理用户,包括创建、删除用户等)
用 Java 操作管理 Openfire(比如管理用户,包括创建、删除用户等)1. 为 Openfire 安装 REST API 插件安装后在管理平台的插件列表里可以看到 REST API 插件:2. 配置 REST API 插件打开 REST API 插件属性页面,配置插件:注意,如果打不开插件的属性页面,可能是插件版本与 Openfire 的版本不适配的缘故,到 Openfire...原创 2019-04-01 15:43:33 · 2470 阅读 · 1 评论 -
用微信小程序实现视频通话
用微信小程序实现视频通话第一步:开通一个云直播服务(比如腾讯云 ),或者自己搭建一个 RTMP 服务器(例如 Nginx+RTMP 服务);第二步:生成两对 RTMP 推拉流 URL ,一对是用于 A 端推流的 push_url_a 和 用于播放 A 端视频的 play_url_a;另一对是用于 B 端推流的 push_url_b 和 用于播放 B 端视频的 play_url_b ;第三步...原创 2019-02-25 11:58:12 · 22837 阅读 · 2 评论 -
用 Eclipse 开发 WebService 项目
用 Eclipse 开发 WebService 项目一、创建 Service1. 在 Eclipse 下新建一个动态Web项目 2. 在项目中新建一个 “SayHello” 类 3. 编写 SayHello 类的代码package org.sunny.service;//包不要引用错了import javax.jws.WebService;import ja...原创 2018-12-11 14:01:33 · 4146 阅读 · 1 评论 -
微信的 OpenId 和 UnionID
微信的 OpenId 和 UnionID1. OpenID 的意义在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID。OpenID是加密后的微信号,每个用户对每个公众号的OpenID是唯一的,对于不同公众号,同一用户的OpenID不同。OpenID是根据AppID生成的,在一个APP中OpenID是唯一的,也就是说同一用户在不同的APP中OpenID是不一样的。2. ...原创 2018-09-15 10:49:10 · 1284 阅读 · 0 评论 -
认识大数据
认识大数据总结一下近期学习的大数据知识,主要是参考了厦门大学林子雨老师的博客。--- 传统的Web应用(LAMP、JavaEE、NODE系等)与大数据的关系之前一直以为大数据的东西就是来取代传统的Web应用的,其实并不是这样。即使是大数据的架构,应用层依然会是传统的web应用,但是会根据数据特点对数据进行存储(结构化数据依然会保存在传统的关系型数据库,如MySql,日志等非结构数据会保...原创 2018-08-30 18:04:14 · 1340 阅读 · 0 评论 -
MyBatis中批量插入数据库与批量更新数据库的XML代码写法
MyBatis中批量插入数据库与批量更新数据库的XML代码写法下面以MySQL为例讲解。一、批量插入(insert)DAO层接口定义:int insertBatch(@Param("arrtest")TestEntity[] arrTest);XML文件配置:<insert id="insertBatch"> insert into TEST (STATE, TESTID, TYP...原创 2018-03-28 19:42:09 · 12803 阅读 · 0 评论 -
client 和 server 通讯实例(TCP协议使用 select 函数)
client 和 server 通讯实例(使用 select 函数)服务器端代码(Linux系统):/****** server.c for Linux ******/ #include #include #include #include #include #define STDIN 0int main(int argc, char *argv[]) {原创 2013-09-18 17:01:30 · 4490 阅读 · 0 评论 -
TCP协议点对点(P2P)通讯(或者说NAT穿越)的实现方案
TCP协议点对点(P2P)通讯(或者说NAT穿越)的实现方案由于TCP的NAT穿越比较麻烦,而且还没有UDP的NAT穿越通用,需要点对点通讯的需求都可以用UDP的NAT穿越完成实现,所以就不亲自实践了。下面就直接转载一篇比较好的关于TCP的NAT穿越的文章。转自:http://www.cnblogs.com/regedit/articles/829725.html其实很转载 2016-07-24 20:56:51 · 9571 阅读 · 1 评论 -
UDP丢包的原因
什么会导致udp丢包呢,我这里列举了如下几点原因:1.调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2.发送的包太大而丢包。虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过30K的一个udp包,不切割直转载 2013-03-26 17:25:30 · 943 阅读 · 0 评论 -
“Bind error:Address already in use” 错误的解决办法
在服务端bind or listen前unsigned int value = 1;setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(void *)&value,sizeof(value)); 另外参见:http://bbs.csdn.net/topics/330034966http://blog.csdn.net/hairetz/a原创 2013-03-15 10:49:18 · 21493 阅读 · 0 评论 -
select函数的错误,Invalid argument 或 Bad file descriptor
select函数的错误,Invalid argument 或 Bad file descriptor,转自:http://gcoder.blogbus.com/logs/51716260.html 之前有一个刷 squid 的 purge 程序,大约要刷20台机器,当时采用多线程 + 非阻塞(select)模式,发现一个很奇怪的问题,当线程数多于52时,select 经常返回出错,22转载 2013-02-28 15:09:46 · 8659 阅读 · 2 评论 -
sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
sockaddr与sockaddr_in,sockaddr_un结构体详细讲解 struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_转载 2013-02-27 11:02:35 · 1155 阅读 · 0 评论 -
select函数以及 FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include #include int select(int maxfd,fd_set *rdse转载 2013-02-27 10:08:45 · 1116 阅读 · 0 评论 -
socket编程:从send函数和sendto函数参数的不同看TCP和UDP的差别。
ssize_t send(int sockfd, const void *buf, size_t len, int flags);ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);send函原创 2013-01-19 16:09:39 · 19564 阅读 · 0 评论 -
交换机和路由器的区别
交换机和路由器的区别 从一般角度来讲:交换机是用于组建以太网的设备,在以太网中依据以太网帧结构中的MAC地址进行转发;交换机的数据交换通常是依靠专有的硬件芯片来完成的,因此交换速率较快;路由器是用于组建互联网的设备,在互联网中依据IP报文结构中的IP地址进行转发;路由器的路由选择通常是依靠操作系统的计算来完成的,因此转发速率相对交换机要慢很多。从当前角度来看:现在有很多转载 2013-02-01 10:41:49 · 531 阅读 · 0 评论 -
UDP有边界,一次一包;TCP是字节流,需要应用层自己判断包边界。
UDP是有边界的,应用层要整包地收,一次只能收一包,每次接收的要么是一个独立的完整的数据包,要么什么也接收不到。TCP是无边界的,是字节流,需要应用层自己判断包边界,一次不一定能收几包,也不一定是完整的包。原创 2013-01-30 09:33:04 · 4003 阅读 · 0 评论 -
字节顺序:大端模式 和 小端模式
字节顺序有“大端模式” 和 “小端模式” 两种。 一、字节顺序只是对内置数据类型而言。例如对于一整型(int,int 是内置数据类型)数,比如 0x123456大端模式:低地址 ----------> 高地址0x12 | 0x34 | 0x56小端模式:低地址 ----------> 高地址0x56 | 0x34 | 0x12但对于字符串就没有大端和小端原创 2013-01-26 16:55:56 · 1491 阅读 · 0 评论 -
Windows 的 FD_SETSIZE 这么轻松就可以改,呵呵,看MSDN...
The variable FD_SETSIZE determines the maximum number of descriptors in a set. (The default value of FD_SETSIZE is 64, which can be modified by defining FD_SETSIZE to another value before including WI原创 2013-04-12 10:57:18 · 3174 阅读 · 0 评论 -
select函数的用法
实例1:监听标准输入#include #include #include #define STDIN 0int main(){ int n, flag; char buf[80]; fd_set fds; struct timeval tv; int fd = STDIN; printf("type \"eXit\" to exit.\n"); flag原创 2013-09-17 17:12:41 · 1102 阅读 · 0 评论 -
调用 inet_ntoa 函数产生的段错误 “Segmentation fault (core dumped)” 的原因及解决办法
调用 inet_ntoa 函数产生的段错误 “Segmentation fault (core dumped)” 的原因及解决办法struct sockaddr_in client_addr; ...printf("connection from %s\n", inet_ntoa(client_addr.sin_addr)); 执行到inet_ntoa时会产生段错误:原创 2013-09-18 10:14:30 · 5576 阅读 · 6 评论 -
UDP协议点对点(P2P)通讯(或者说NAT穿越)实例
UDP协议点对点(P2P)通讯实例。【实验环境】一个服务端Server,两个客户端:Client1和Client2 。Server和Client1在Linux系统上运行,Client2在Windows上运行。Server端源代码:#include #include #include #include #include #include原创 2016-07-24 11:41:59 · 10540 阅读 · 1 评论 -
用 pystun 获取局域网的NAT类型和公网IP
用 pystun 获取局域网的NAT类型和公网IPpystun是一个STUN客户端工具,用于获取局域网的NAT类型和公网IP。A Python STUN client for getting NAT type and external IP (RFC 3489)pystun的下载地址:https://pypi.python.org/pypi/pystun到该地址下载py原创 2016-06-12 18:43:51 · 4913 阅读 · 0 评论 -
测试TCP和UDP端口的方法
测试TCP和UDP端口的方法下面以Linux平台为例,讲述测试TCP和UDP端口的方法。有两个命令可以用来测试端口,一个是telnet,一个是nc,但telnet只能用于测试TCP端口,而nc即可用于测试TCP端口也可用来测试UDP端口。【telnet命令的用法】telnet IP port例如:[root@localhost]# telnet 192.168.0.原创 2016-06-07 14:57:37 · 150397 阅读 · 3 评论 -
网络抓包工具 tcpdump 的用法
抓包命令 tcpdump 的使用用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump提供了很原创 2013-11-07 15:18:41 · 1169 阅读 · 0 评论 -
重叠I/O之事件对象通知
重叠I/O之事件对象通知 重叠I/O,Overlapped I/O。一、 重叠I/O的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。2. 比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O使应用程序能达到更佳的系统性能。因为它和这4种模型不同的是,使用重叠I/O的原创 2015-04-06 21:46:57 · 1087 阅读 · 0 评论