在终端下输入ping 192.168.3.X
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <arpa/inet.h>
#include <netinet/in.h>
const int port = 8888;
const char* ip = "192.168.64.190"; //服务器端IP
int main()
{
int ser_sock = socket(AF_INET, SOCK_STREAM, 0); //创建套接字,即创建socket
if(ser_sock < 0)
{
perror("socket");
return 1;
}
struct sockaddr_in addr; //绑定信息,即命名socket
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
/*inet_addr函数将用点分十进制字符串表示的
IPv4地址转化为用网络字节序整数表示的IPv4地址 */
if(bind(ser_sock, (struct sockaddr*)&addr, sizeof(addr)) < 0)
{
perror("bind");
return 2;
}
int listen_sock = listen(ser_sock, 5); //监听socket
if(listen_sock < 0)
{
perror("listen");
return 3;
}
/*接受连接*/
struct sockaddr_in peer;
socklen_t peer_len;
char buf[1024];
int accept_fd = accept(ser_sock, (struct sockaddr*)&peer, &peer_len);
if(accept_fd < 0)
{
perror("accept");
return 4;
}
else
{
printf("connect from %s, port %d \n", inet_ntop(AF_INET,&peer.sin_addr, buf, 1024), ntohs(peer.sin_port));
}
while(1)
{
memset(buf, '\0', sizeof(buf));
ssize_t size = read(accept_fd, buf, sizeof(buf) - 1);
if(size > 0)
{
printf("client: %s\n", buf);
}
else if(size == 0)
{
printf("read is done...\n");
break;
}
else
{
perror("read");
break;
}
printf("server:");
fflush(stdout);
size = read(0, buf, sizeof(buf) - 1);
if(size > 0)
{
buf[size - 1] = '\0';
}
else if(size == 0)
{
printf("read is done...\n");
break;
}
else
{
perror("read");
break;
}
write(accept_fd, buf, strlen(buf));
}
close(ser_sock);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <arpa/inet.h>
#include <netinet/in.h>
const int port = 8888;
const char* ip = "192.168.64.190"; //服务器IP
int main()
{
int clt_sock = socket(AF_INET, SOCK_STREAM, 0); //创建套接字,即创建socket
if(clt_sock < 0)
{
perror("socket");
return 1;
}
struct sockaddr_in addr; //绑定信息,即命名socket
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
/*inet_addr函数将用点分十进制字符串表示的
IPv4地址转化为用网络字节序整数表示的IPv4地址 */
//发起连接
socklen_t addr_len = sizeof(addr);
int connect_fd = connect(clt_sock, (struct sockaddr*)&addr, addr_len);
if(connect_fd < 0)
{
perror("connect");
return 2;
}
char buf[1024];
while(1)
{
memset(buf, '\0', sizeof(buf));
printf("client please enter: ");
fflush(stdout);
ssize_t size = read(0, buf, sizeof(buf) - 1);
if(size > 0)
{
buf[size - 1] = '\0';
}
else if(size == 0)
{
printf("read is done...\n");
break;
}
else
{
perror("read");
return 4;
}
// printf("client: %s\n", buf);
write(clt_sock, buf, strlen(buf));
size = read(clt_sock, buf, sizeof(buf));
if(size > 0)
{
buf[size] = '\0';
}
else if(size == 0)
{
printf("read is done...\n");
break;
}
else
{
perror("read");
return 5;
}
printf("server: %s\n", buf);
}
close(clt_sock);
return 0;
}
一、准备环境1、搜索并下载nginx版本sudo docker search nginx可看到如图所示这里选择官方最新版本下载sudo docker pull nginx:latest_centos docker安装nginx
一般apk分普通权限和系统权限普通apk安装目录一般在data/app,也可以转移到sd卡,系统apk则在syste/app下。如果apk拥有和framework一样的签名(源码下编译使用LOACL_CERTIFICATE:=platform或者拷贝build/target/product/security/下的platform.pk8和platform.x509.pem进行重新签_软件授权跟签名是一样的吗
日期:2017年12月21日观看: 1,895 °C 次用法:jad [option(s)] jad [选项(s)] 选项:-a - 生成JVM指令作为注释(注释)-af - 注释时输出完全限定的名称-b - 生成冗余大括号(大括号)-clear - 清除所有的前缀,包括默认的前缀-d - 输出文件的目录-dead - 尝试反编译死的代码部分(如果有的话)-dis - 仅反汇编(反汇编)-f ..._linux jad使用
2022年9月 最新版本下 windows terminal + oh-my-posh配置美化教程
用buildroot编译出来的文件系统,开机时每次都要登录。解决办法:vi /etc/inittab找到:console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL修改为:console::respawn:-/bin/sh重启之后就不会提示登录了。..._buildroot 设置登录无效
我需要在一台服务器上给php添加pthread扩展,cdpthreadsphpize./configure编译这一步时,提示configure:error:pthreadsrequiresZTS,pleasere-compilePHPwithZTSenabled查一下是需要重新编译,添加 –enable-maintainer-zts现在有几个疑问,1这台服务器当初不是我配的,...
下载压缩包mysql-5.7.23-winx64.zip,解压后1. 在安装目录中新建data文件夹2. 在安装目录中新建my-default.ini文件,内容如下:[mysqld]character-set-server=utf8#绑定IPv4和3306端口bind-address = 0.0.0.0port = 3306sql_mode="STRICT_TRANS_TABLES,NO_ENGI..._mysql汉化版压缩包
背景××项目需要提供系统部分函数第三方调用接口,基于安全性和避免暴露数据库表信息的基础上进行函数接口的设计,根据第三方调用身份的权限提供某张表的自定义集合。本项目基于mybatis的持久层框架,支持定制化的SQL,这样可以避免拼接sql语句的痛苦。例如拼接时要确保不能添加空格,还要注意去掉列表的最后一个列名的都逗号。基于OGNL的表达式的mybatis框架可以彻底解决这种痛苦。动态返回mysq...
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。本文主要内容:ScrollViewer的样式拆解及基本样式定义;ListBox集合控件的样式定义; 二.ScrollViewer自定义样式ScrollViewer在各种列表、集合控_scrollviewer样式
作者:matrix被围观: 10,895 次发布时间:2014-05-12分类:零零星星 |20 条评论 »????NOTICE:这是一个创建于 2493 天前的主题,其中的信息可能已经有所发展或是发生改变。学校用的是正方教务系统,这玩意做的太恶心了。用php模拟登录前进行fiddler软件抓包。每个学校的正方教务系统略有不同,这里仅仅是个样本。根据抓包结果找到提交所需的post数据__VIEWSTA..._用php的curl模拟登录asp教务系统
说明:24,25号自己又重新利用Windows硬盘安装了Ubuntu操作系统。之所以决定写篇博文记录安装过程,是安装过程中遇到“Error 15 File not foud”问题,苦恼了半小时。理论上本文方法可以安装其他Linux发行版。
【目标】:每天上午5:10自动备份postgreSql中的bloodhound数据库,备份文件存放在/opt/bloodhound/backup/,并保留最近30天的备份文件。【步骤】:1、生成.pgpass文件由于备份数据库时需要输入密码,所以这里先配置下,这样在执行备份命令时就不需要手动输入密码了。crontab 是在root 用户下编辑的,所以我们需要在root 用户的目录下,生成.pgpa..._.pgpass+crontab