//打开设备
int ctUsb_open(int devId)
{
int handle = -1;
CTUsbMsg msg;
int msglen, incnt;
memset(&msg, 0, sizeof(msg));
snprintf(msg.msgData, sizeof(msg.msgData), "OPEN");
msg.msgLen = strlen(msg.msgData) + sizeof(devId);
memcpy(&msg.msgData[4], &devId, sizeof(devId));
int xreason;
handle = ctUsb_connect(USB_ADMIN_DATA_PORT);
if (handle > 0)
{
write(handle, &msg, msg.msgLen + sizeof(msg.msgLen));
incnt = ctUsb_msgRecive(handle, &msglen, sizeof(msglen));
if (incnt > 0)
{
ctUsb_msgRecive(handle, &xreason, msglen);
}
}
g_errno = xreason;
return handle;
}
//创建socket连接
static int ctUsb_connect(int portNum)
{
int sockfd, addrsize;
struct sockaddr_in seraddr;
memset(&seraddr, 0, sizeof(seraddr));
seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(portNum);
seraddr.sin_addr.s_addr = inet_addr("127.0.0.1");
addrsize = sizeof(struct sockaddr_in);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
printf("could not create socket\n");
}
if (connect(sockfd, (struct sockaddr*)&seraddr, addrsize) == -1)
{
printf("could not connect usbAdmin\n");
close(sockfd);
sockfd = -1;
}
return sockfd;
}
/**
* 配置设备属性
* @param handle(IN)
* @param request(IN)
* @param arg(IN/OUT)
* @param reason(OUT)
* @return Result
*/
int ctUsb_ioctl(int handle, int request, void *arg, int arglen)
{
CTUsbMsg msg;
int len, xreason, n;
int requestx = request;
memset(&msg, 0, sizeof(msg));
snprintf(msg.msgData, sizeof(msg.msgData), "IOCTL");
len = strlen(msg.msgData);
memcpy(&msg.msgData[len], &requestx, sizeof(requestx));
memcpy(&msg.msgData[len + 4], &arglen, sizeof(arglen));
if (arg != NULL)
{
memcpy(&msg.msgData[len + 8], arg, arglen);
}
msg.msgLen = 5 + sizeof(requestx) + arglen;
write(handle, &msg, msg.msgLen + sizeof(msg.msgLen));
n = ctUsb_msgRecive(handle, &len, sizeof(len));
if (n > 0)
{
ctUsb_msgRecive(handle, (char*)arg, len);
}
n = ctUsb_msgRecive(handle, &len, sizeof(len));
if (n > 0)
{
ctUsb_msgRecive(handle, &xreason, len);
}
g_errno = xreason;
return 0;
}
为了方便理解,我用java写一个调用的方法:
public static void main(String[] args){
int handle=open(devcId);//创建socket连接 此处handle是什么意思,接着调用ctUsb_ioctl方法要把此handle 传给 ctUsb_ioctl方法,(我自己的理解表示socket对象,但在java中要 怎么用int 类型的变量代表一个socket对象呢)
ctUsb_ioctl(handle,......)//
}
请大家帮忙给分析一下 C的程序流程,考虑用java如何实现!!!先拜谢了!!
相关推荐
《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。 内容示例为: 9. 阅读下列程序片段,写出运行结果。 public class Test { public static void main...
java 快速排序 折半查找的界面实现 (递归与分治法)
实验七 Java多线程 一、实验目的: 熟悉利用Thread类建立多线程方法。 熟悉利用Thread接口建立多线程方法...通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
Java程序设计 一、单选题(共计60题) (1) 下列有关事件监听器的描述正确的是(C)。 A、一个监听器只能接受一个组件产生的事件 B、只有一个监听器可以被附加到一个组件上 C、多个监听器可以被附加到一个...
1.9 指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。 6 第二章 运算和语句 7 2.1 Java的字符能参加算术运算吗? 7 2.2 占字节多的变量能直接赋值给占字节少的变量么? 7 2.3 试用...
能用方法嵌套调用解决相对比较复杂的问题,如十进制整数转换成十六进制数问题。 在定义方法时,一个方法内不能再定义另一个方法,即不能嵌套定义,但是在调用一个方法的过程中,还可以调用另一个方法,这是方法的...
(4)Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D的平移。 (5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point2D的对象...
完整版的,经过调试的一个java环境下的基于UDP协议的聊天程序,udp协议聊天程序、java开发、计算机网络课程设计
本代码展示了矩阵的转置,通过提示,输入想要转置的矩阵,完成该矩阵的转置
用java语言编写输出菱形的小程序
A) 程序中的第一条可执行语句〖〗B) 程序中的第一个函数〖〗 C) main函数〖〗D) 包含文件中的第一个函数分析:在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在...
用java实现二维数组的转置,1.输入想要创建的数组的维数M;2.分别输入M行数组元素;3.打印数组;4.数组转置;5.打印转置后的数组
java计算星期几,java计算后几天的日期) 收藏 一个简单的相对的较为完善的日期操作类
Java语言规定构造方法名与类名必须相同 Java语言规定构造方法没有返回值,但不用void声明 Java语言规定构造方法不可以重载 Java语言规定构造方法只能通过new自动调用 下列叙述中错误的是 D 。 Java Application与...
在Java程序中import语句可以没有 C.在Java程序中import语句必须有一个 D.在Java程序中import语句引入在所有类定义之前 5. 在编译Java程序时,用于指定生成.class文件位置的选项是 B 。 A.-g B.-d C.-verbose D...
安 徽 工 程 大 学 高级语言程序设计 实 验 报 告 班级 姓名 同组者 / 成绩 日期 2019.10.10 指导教师 实验名称 选择结构程序设计 1. 实验目的 学会正确使用关系...用switch语句来实现。 3. 输入4个整数,要求按从
一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m++) ( -- n...
在Java程序中import语句可以没有 C.在Java程序中import语句必须有一个 D.在Java程序中import语句引入在所有类定义之前 5. 在编译Java程序时,用于指定生成.class文件位置的选项是 B 。 A.-g B.-d C.-verbose D...
实验要求:编写一个Java应用程序,实现下列功能:程序随机分配给客户一个1—100之间的整数用户在输入对话框中输入自己的猜测程序返回提示信息,提示信息分别是:
JAVA高级程序设计测试题含答案 JAVA高级...第14题 【单选题】【2.00分】【概念理解】 哪个方法是实现Runnable接口必须实现的 [单选题] * JAVA高级程序设计测试题含答案全文共43页,当前为第4页。 A. wait() B. run()