首页 > 代码库 > 个人andriod实习小作品,个人联网笔记本
个人andriod实习小作品,个人联网笔记本
个人联网笔记本
个人信息:就读于燕大本科软件工程专业 目前大四;
本人博客:google搜索“cqs_2012”即可;
个人爱好:酷爱数据结构和算法,希望将来从事算法工作为人民作出自己的贡献;
编程语言:java ;
编程坏境:Windows 7 专业版 x64;
编程工具:jdk,eclipse,AVD;
制图工具:office 2010 powerpoint;
硬件信息:7G-3 笔记本;
引言
个人第一部联网andriod作品诞生,andriod生涯里程碑的出现。
主要技术点
通信socket技术,使用多线程通信。
在socket使用中,使用一次打开一次,关闭一次,数据传输一去一回。
socket与应用程序主线程的切换;
对主线程进行枷锁,数据传送完后,在socket线程里对主线程的唤醒,防止主线程没有等待数据通信完毕就开始执行。
对主线程设置锁;
// 线程锁(其实就是定义一个全局变量,在myapplication(全局变量)中定义)
public static String loginThreadState = "off";加锁操作
MyApplication.loginThreadState =“off”;
// 判断当前线程是否唤醒检查锁操作
while(MyApplication.loginThreadState.equals("off"));
开锁以及唤醒操作
// 唤醒 login 进程
MyApplication.loginThreadState = "on";
MyApplication.loginThreadState.notify();然后这样就可以实现通信了,并且可以等待通信返回来的数据,然后去处理。
个人笔记服务器端socket实现
import java.net.*; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; import DBData.DataApplication; import DBData.NoteBookClass; import DBData.User; import DBOperation.NoteDao; import DBOperation.UserDao; import DataChange.NoteChange; public class MyAppNoteBookInfor extends Thread { // 链接变量 private static int port; private static ServerSocket serverSocket ; static Socket server; private DataInputStream input; private DataOutputStream output; static { try { // 设置服务器端口 port = 8899; serverSocket = new ServerSocket(port); } catch(Exception e) { e.printStackTrace(); } } public MyAppNoteBookInfor()throws Exception { // 成功启动 System.out.println("accept ready"); server = serverSocket.accept(); // 成功启动 System.out.println("accept start"); // 获取数据流 input = new DataInputStream(server.getInputStream()); output = new DataOutputStream(server.getOutputStream()); } // run 主函数 public void run() { try { // 接收数据 String commondData = http://www.mamicode.com/getCommondData();>
个人客户端socket实现package Thread; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.Socket; import com.icss.myappnotebook.MyApplication; public class SocektThread extends Thread { // 设置链接服务器 private String ip = "120.6.72.65" ; private int port = 8899 ; // 链接客户端程序 变量 private Socket clientSocket ; // 设置数据流 public DataInputStream input ; public DataOutputStream output ; // 线程主函数 public void run() { try { // 链接服务器 clientSocket = new Socket(ip,port); // 获取服务器输入流 input = new DataInputStream(clientSocket.getInputStream()); // 获取服务器输入流 output = new DataOutputStream(clientSocket.getOutputStream()); switch (MyApplication.commond) { // check-核对用户名和密码 case MyApplication.commond_check_user: // 发送数据 2点 output.writeUTF(MyApplication.senddata); output.flush(); // 发送成功 System.out.println("send ok"); // 接收数据 MyApplication.getdata = http://www.mamicode.com/input.readUTF();>
希望对于想实现通信的好友有帮助,谢谢大家
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。