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数据报通 ...
随机推荐
- myeclipse的一些设置
常用快捷键 Ctrl + Shift + R 搜索文件Ctrl + Shift + T 搜索类型Ctrl + O 搜索成员 智能提示 Windows > Preferences > G ...
- 简单的使用AngularJS的解析JSON
使用AngularJS+Struts2进行前后台的数据交互与显示. struts.xml 配置文件需要将设置extends="json-default" type="j ...
- PHP生成静态页面的方法
在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存 等实现页面静态化,今天就以PHP实例教程形 ...
- leetcode 101
101. Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric aroun ...
- new_things
'NapCat' in AppStore for reading codes from github. and the ----minibufexpl | + nerd ...
- [转]CentOS开机启动脚本
转载自http://www.2cto.com/os/201306/220559.html 我的一个Centos开机自启动脚本的制作 一.切换到/etc/init.d/ 二.制作sh脚本 v ...
- Linux manual中命令标号的含义
如果查看Linux manual(例如,执行:man open), 会发现文档中有这样的表达方式:read(2), write(2), lseek(2), fcntl(2)等,括号中的数值表达什么含义 ...
- PHP和AJAX笔记汇总
AJAX简介AJAX = Asynchronous JavaScript And XML(异步 JavaScript 及 XML)AJAX 是 Asynchronous JavaScript And ...
- C#虚方法和覆写方法
- phpMyAdmin提示“Access denied for user 'root'@'localhost' (using password: NO)”的解决办法
一.错误内容 在用thinkPHP登陆phpMyAdmin时遇到以下错误 #1045 - Access denied for user 'root'@'localhost' (using passwo ...