首页 > 代码库 > 个人andriod实习小作品,个人联网笔记本

个人andriod实习小作品,个人联网笔记本

个人联网笔记本

个人信息:就读于燕大本科软件project专业 眼下大四;

本人博客: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();

然后这样就能够实现通信了,而且能够等待通信返回来的数据,然后去处理。

个人笔记server端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();"null" ;
				if(noteList != null && noteList.size() > 0)
					// 数据转换
					senddata = http://www.mamicode.com/NoteChange.noteListToStringWithSendForSelect(noteList); "null" ;
				if(noteList != null && noteList.size() > 0)
					senddata = http://www.mamicode.com/NoteChange.noteListToStringWithSendForSelect(noteList); "null" ;
				if(noteList != null && noteList.size() > 0)
					// 数据转换
					senddata = http://www.mamicode.com/NoteChange.noteListToStringWithSendForSelect(noteList); >
个人clientsocket实现

package Thread;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;

import com.icss.myappnotebook.MyApplication;

public class SocektThread extends Thread
{
	// 设置链接server
	private  String ip = "120.6.72.65" ;
	private  int port = 8899 ;	// 链接客户端程序 变量	
	private  Socket clientSocket ;

	// 设置数据流
	public  DataInputStream input ;
	public  DataOutputStream output ;



	// 线程主函数
	public void run()
	{	

		try
		{					
			// 链接server
			clientSocket = new Socket(ip,port);

			// 获取server输入流
			input = new DataInputStream(clientSocket.getInputStream());

			// 获取server输入流
			output = new DataOutputStream(clientSocket.getOutputStream());	


			switch (MyApplication.commond) 
			{

			// check-核对username和password
			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();"on";
				MyApplication.loginThreadState.notify();

				break;

				// 获得全部notes			
			case MyApplication.commond_get_my_all_note:
				// 发送数据 2点
				output.writeUTF(MyApplication.senddata);
				output.flush();	

				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.menuThreadState.notify();	

				break;
				
			case MyApplication.commond_insert_note:
				// 发送数据
				output.writeUTF(MyApplication.senddata);
				output.flush();	
				
				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.newNoteBookThreadState.notify();	

				break;	
			case MyApplication.commond_insert_user:
				// 发送数据
				output.writeUTF(MyApplication.senddata);
				output.flush();	
				
				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.registerUserThreadState.notify();
				break;
			
			case MyApplication.commond_search_note_by_key:
				// 发送数据
				output.writeUTF(MyApplication.senddata);
				output.flush();	
				
				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.searchNoteBookThreadState.notify();				
				break;
				
			case MyApplication.commond_alter_note:
				// 发送数据
				output.writeUTF(MyApplication.senddata);
				output.flush();	
				
				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.showOneNoteThreadState.notify();
				break;
			case MyApplication.commond_delete_note:
				// 发送数据
				output.writeUTF(MyApplication.senddata);
				output.flush();	
				
				// 接收数据
				MyApplication.getdata = http://www.mamicode.com/input.readUTF();"on";
				MyApplication.openAllThreadState.notify();				
				break;
			default:
				break;
			}

			clientSocket.close();


		}
		catch(Exception e)
		{
			e.printStackTrace();
		}




	}


}

希望对于想实现通信的好友有帮助,谢谢大家



个人andriod实习小作品,个人联网笔记本