首页 > 代码库 > 个人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();>
希望对于想实现通信的好友有帮助,谢谢大家