homework-03 扑街。。
1.思路
我的思路是利用进程间通信间来实现题目要求。
第一次打开的程序与第二次打开的程序并不是同一个进程,故需要进程间通信来是传递信息。
windows下进程间通信的方式有很多,如文件映射、共享内存、匿名管道、命名管道等
文件映射能使进程把文件内容当作进程地址区间一块内存那样来对待,是在多个进程间共享数据的非常有效方法。
共享内存是一种特殊的文件映射,共享的数据可以比较大。
匿名管道一般是父子进程间的使用。
命名管道是进程之间通信的单向或双向管道,可用与不相关的进程间通信。
在这次作业的条件下,我觉得命名管道最佳。因为要通信的两个进程并非父子进程,去传输数据较小。
命名管道程序的开发涉及到服务端和客户端两个部分。服务端进程负责创建管道并等待客户端进程连接,在管道创建完成后,客户端可以进行连接并进行通信。
此次作业中只有一个程序,则该程序打开时先认为自己是客户端,去查找该命名管道,发现没有,则变成服务端,创建管道,等待后面的客户端连接。
之后再次打开改程序,这个进程查找命名管道,发现存在,则发送信息(命令行参数),发送完就结束自己。
但是,我发现我使用java实现图形界面的,java居然好像没有命名管道!!!
只能用内存共享尝试。
2.悲剧
图像界面。。。我去宗毅同学寝室串门,看到他实现了这道题目,使用C#写的,他说C#图形界面很简单!
我一排脑瓜,觉得不错,决定也用c#。但我发现我没学过C#。。。
我的结队队友告诉我他会,这让我感到一阵轻松。但是过了几天没良心的队友跑啦!!!他退课了
留下我在风中凌乱。。。去图书馆借C#的书,看的云里雾里,到现在,还是捉急。
后来,只得用Java写。图形界面

然后把原来C++算法部分的代码移植过来。
这还是好实现的。
但是,java的进程间通信让我感到好无力!!
写不下去了。写了一半。
3.反思
我应该用自己熟悉的语言去写的,妄图1天搞定一门语言还是不太现实。
C#真的有点乱。。。
其实说到底还是我有点懒。
下次加油!
homework-03 扑街。。的更多相关文章
- nlp homework 03
NLP Homework 03 --冯煜博 题目描述 (盒子和球模型)假设有3个盒子,每个盒子里装有红白两种颜色的球,盒子里的红白球有下表列出,初始状态分布. 解答 1. 给出HMM模型 \(\mu= ...
- 小兔JS教程(四)-- 彻底攻略JS数组
在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...
- 小兔JS教程(三)-- 彻底攻略JS回调函数
这一讲来谈谈回调函数. 其实一句话就能概括这个东西: 回调函数就是把一个函数当做参数,传入另一个函数中.传进去的目的仅仅是为了在某个时刻去执行它. 如果不执行,那么你传一个函数进去干嘛呢? 就比如说对 ...
- 20181120-6 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 03
此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411] 版本控制地址 [https://git.coding.n ...
- 作业要求20181113-4 Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
作业要求:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2385 版本控制:[https://git.coding.net/lglr201 ...
- Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 03
此次作业要求参见https://edu.cnblogs.com/campus/nenu/2018fall/homework/2286 Scrum master:范洪达 一.小组介绍 组长:王一可 组员 ...
- 20181016-4 Alpha阶段第1周/共2周 Scrum立会报告+燃尽图 03
此作业链接地址见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2248 Scrum master:王硕 一.小组介绍 组长:王一可 组员 ...
- 20191107-4 beta week 2/2 Scrum立会报告+燃尽图 03
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9956 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶, ...
- day33-线程基础03
线程基础03 6.用户线程和守护线程 用户线程:也叫工作线程,当线程的任务执行完或者通知方法结束.平时用到的普通线程均是用户线程,当在Java程序中创建一个线程,它就被称为用户线程 守护线程(Daem ...
- day41-网络编程03
Java网络编程03 5.UDP网络通信编程[了解] 5.1基本介绍 类DatagramSocket 和 DatagramPacket[数据报/数据包]实现了基于 UDP的协议网络程序 UDP数据报通 ...
随机推荐
- Freebsd下压缩解压文件详解
压缩篇: 把/usr/webgames目录下的文件打包.命名为bak.tar.gz 放到/usr/db-bak目录里 下面命令可以在任意目录执行.无视当前目录和将要存放文件的目录.tar -zcvf ...
- Windows phone 8 学习笔记(7) 设备(转)
本节主要涉及到 Windows phone 8 手机支持的各类设备,包括相机.设备状态,振动装置等.还有各类感应器,包括磁力计.加速度器和陀螺仪.通过设备状态可以获取内存.硬件.电源.键盘等状态:通过 ...
- 在vs2005中使用SVN进行版本管理
1.软件准备 VisualSVN-Server-2.5.10.msi SVN服务端 WindowsXP-KB942288-v3-x86.exe XP中安装TortoiseSVNSVN1.8必须 Tor ...
- [原]Python 简单异常处理
s=raw_input("Input your age:") if s =="": raise Exception("Input must no be ...
- iConvert Icons 图标转换生成利器,支持Windows, Mac OS X, Linux, iOS,和Android等系统
这是一款在线图标转换工具,生成的图标支持Windows, Mac OS X, Linux, iOS, 和 Android等主流系统. 可以上传图标文件转化成另一个平台下的图标文件,例如将windows ...
- Arch 安装步骤
1.CFDISK 命令分区 一个主分区和一个逻辑分区 2.partprobe /dev/sdx 刷新分区表 3.mkfs 4. 5. 6.>dhcpcd 7. 8. 9. 10. 11. 12. ...
- VBA删除表格最后一行
Sub 删除最后一行() If MsgBox("要为所有表格添加列吗?", vbYesNo + vbQuestion) = vbYes Then To ActiveDocument ...
- SQLServer附加数据库5120错误
装有MSSQL的电脑 需要附加的数据库文件(*.mdf)及其日志文件(*.ldf) 1. 打开SQL Server Management Studio,并连接上数据库.右键"数据库" ...
- 《第一行代码--Android》阅读笔记之Activity
1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重 ...
- VS2010 /VC/bin/rcdll.dll 无法找到资源编译器
把C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin 目录下的rcdll.dll拷贝到 C:\Program Files(x86)\Micr ...