代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
手机关电脑
作者:
YangYuDong
/ 发布于
2013/4/16
/
835
通过Android手机去关闭电脑,适用windows系统。之前发了一个电脑端用java写的,在网上自学后用C语言写了这个电脑服务器端。注意,这个app对应这个客户端,之前发的不能通用。 在学习的过程中发现,关于C语言与java通过socket通信这方面比较少入门级的简单易懂的例子,在C的cpp里面写了一下一些学到的东西,不足之处望指导。java实现socket比较简单,就不写了。
#include <stdio.h> #include <winsock.h> //windows下使用socket的头文件 #include <string.h> #pragma comment (lib,"wsock32.lib") //告诉编译器先去wsock32.lib库里面找 void main() { char password[20]; //密码 int port; //端口 printf(" Controling By Your Phone\n\n"); printf(" Power By Yudong\n\n\n"); printf("Plase Enter the Port :(Default : 17958. You'd better use this!)\n\n"); scanf("%d",&port); printf("Please Enter the Password :(Default : 123. You'd better use the numbers no more than 999999!\n\n"); scanf("%s",&password); WSADATA data; //这两句初始化,说明要使用的版本,是一个结构体,具体百度一下 WSAStartup(MAKEWORD(2,0),&data); SOCKET socket1; //服务器端监听 SOCKET socket2; //用来获取accept来的客户端socket struct sockaddr_in local; struct sockaddr_in from; int fromlen =sizeof(from); local.sin_family=AF_INET; local.sin_port=htons(port); local.sin_addr.s_addr=INADDR_ANY; socket1=socket(AF_INET,SOCK_STREAM,0); //SOCK_STREAM,表示TCP通信,我试过用UDP通信,失败 bind(socket1,(struct sockaddr*)&local,sizeof local); //绑定socket while (1) { printf("Waiting...\n"); listen(socket1,0); //监听 socket2=accept(socket1,NULL,NULL); //连接 printf("Connected...\n"); char buffer[1024]="\0"; recv(socket2,buffer,sizeof(buffer),0); //收数据,注意,这里的收发数据的方式都是错误的,你可以在接受端里面调试看看,接收到的数据是不正确的 printf("Checking Password...\n"); //java和C之间通信存在大端小端的问题 if(strcmp(buffer,password)==0) //网上有正确的通过大端小端转换的正确方式 { char str[] = " "; send(socket2,str,sizeof(buffer),0); //发数据 printf("Password Pass...\n"); printf("Closing windows...\n"); system("shutdown -s -t 10"); //关机命令 } else { char str2[] = "a"; send(socket2,str2,sizeof(buffer),0); printf("Wrong Password...\n"); } } closesocket(socket1); //关闭 closesocket(socket2); WSACleanup(); } server.cpp #include <stdio.h> #include <winsock.h> //windows?????socket?????? #include <string.h> #pragma comment (lib,"wsock32.lib") //????????????wsock32.lib???????? void main() { char password[20]; //???? int port; //??? printf(" Controling By Your Phone\n\n"); printf(" Power By Yudong\n\n\n"); printf("Plase Enter the Port :(Default : 17958. You'd better use this!)\n\n"); scanf("%d",&port); printf("Please Enter the Password :(Default : 123. You'd better use the numbers no more than 999999!\n\n"); scanf("%s",&password); WSADATA data; //??????????????????õ?汾??????????壬????????? WSAStartup(MAKEWORD(2,0),&data); SOCKET socket1; //??????????? SOCKET socket2; //???????accept????????socket struct sockaddr_in local; struct sockaddr_in from; int fromlen =sizeof(from); local.sin_family=AF_INET; local.sin_port=htons(port); local.sin_addr.s_addr=INADDR_ANY; socket1=socket(AF_INET,SOCK_STREAM,0); //SOCK_STREAM?????TCP???????????UDP??????? bind(socket1,(struct sockaddr*)&local,sizeof local); //??socket while (1) { printf("Waiting...\n"); listen(socket1,0); //???? socket2=accept(socket1,NULL,NULL); //???? printf("Connected...\n"); char buffer[1024]="\0"; recv(socket2,buffer,sizeof(buffer),0); //??????????????????????????????? printf("Checking Password...\n"); //java??C???????????С??????? if(strcmp(buffer,password)==0) //????????????????С????????????? { char str[] = " "; send(socket2,str,sizeof(buffer),0); //????? printf("Password Pass...\n"); printf("Closing windows...\n"); system("shutdown -s -t 10"); //??????? } else { char str2[] = "a"; send(socket2,str2,sizeof(buffer),0); printf("Wrong Password...\n"); } } closesocket(socket1); //??? closesocket(socket2); WSACleanup(); }
试试其它关键字
手机关电脑
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
YangYuDong
贡献的其它代码
(
1
)
.
手机关电脑
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3