java做服务器,android做客户端,实现数据传输

许久未动笔,有个小项目开始动工。需要用一台windows电脑做服务器,在android端与其进行数据交换,实现一些业务。简单起见,用java写这个服务器,以前没做过,试试水。很简单的代码,纯粹找思路。服务器端代码:package com.test;import java.io.IOException;import java.io.OutputStream;impor

大家好,又见面了,我是全栈君。

许久未动笔,有个小项目开始动工。

需要用一台windows电脑做服务器,在android端与其进行数据交换,实现一些业务。

简单起见,用java写这个服务器,以前没做过,试试水。很简单的代码,纯粹找思路。

服务器端代码:

package com.test;

import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
	public static void main(String[] args) {
		try {
			ServerSocket server = new ServerSocket(8888);
			while (true) {
				System.out.println("execute 1\n");
				Socket client = server.accept();
				System.out.println("execute 2\n");
				OutputStream out = client.getOutputStream();
				System.out.println("execute 3\n");
				String msg = "hello android";
				out.write(msg.getBytes());
				System.out.println("execute 4\n");
				client.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

用了吉利的数字8888做端口,等android端连接上来,发送一句话给android。

 

android端代码:

package com.teat;

import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TestSocketActivity extends Activity {
	private TextView myTextView;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		myTextView = (TextView) findViewById(R.id.textView1);
		try {
			myTextView.setText("0");
			Socket socket = new Socket("192.168.1.100", 8888);
			myTextView.setText("1");
			InputStream in = socket.getInputStream();
			byte[] buffer = new byte[in.available()];
			myTextView.setText("2");
			in.read(buffer);
			myTextView.setText("3");
			String msg = new String(buffer);
			myTextView.setText(msg);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

方便起见,ip地址是写死的,通过dos窗口下的ipconfig指令查看自己电脑的本地ip,然后把下面这行代码里的ip修改成你电脑的ip就可以正常通信了。

Socket socket = new Socket("192.168.1.100", 8888);

如果正常通信的话会显示服务器发来的“hello android”;

代码下载:http://download.csdn.net/detail/jason0539/7011951

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121369.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java菜鸟教程+视频笔记

    java菜鸟教程+视频笔记1、java中局部变量是在栈上分配的;2、数组是储存在堆上的对象,可以保存多个同类型变量;3、在Java语言中,所有的变量在使用前必须声明。4、局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。5、内置类型有默认值,引用对象的默认值是null;6、非静态实例变量、非静态方法是通过对象实例进行调用的,不能直接从静态方法中调用;比如java源文件中main方法中不可以直接调用非静态…

    2022年6月14日
    26
  • POJ 1011 Sticks

    POJ 1011 Sticks

    2021年12月7日
    39
  • 微积分(六)——一元函数微分学[通俗易懂]

    微积分(六)——一元函数微分学[通俗易懂]前言这一章的特点是出题点较多且杂,其实考察的知识就是大纲上的那些。或者说出题的角度灵活比较合适。除了掌握大纲中的要求,还要多做练习题找到题中经常出现的坑,大都是对定义的精确考察,我也遇到的都记录在这里。(一)一元函数微分学基础这一部分只会讨论什么是导数与微分,以及它们的计算。也是一元函数微分学最基础的部分。1)讨论导数与微分的概念给出函数判断导数是否存在:利用导数的定义判断在某一点导数是否存在,注意可导必定连续。如果函数是分段函数,要保证左右导数都存在且相等才存在导数。如果函数是绝对值函

    2025年7月4日
    0
  • 新版大官场–男人是山

    新版大官场–男人是山一部官场小说,写的有点虚无缥缈,不够真实。[@more@]这本小说的写法有点发散,期间有些年份的跨度不够合理,中规中矩,闲时可看看。…

    2022年4月28日
    114
  • PL/SQL连接oracle数据库

    PL/SQL连接oracle数据库

    2021年12月3日
    50
  • C语言输出有颜色的字体

    C语言输出有颜色的字体先看下面的一段代码:#include<stdio.h>intmain(intargc,char**argv){printf(“\033[44;37;5mhelloworld\033[0m\n”);return0;}编译后运行上述代码,结果如下:可见,此时输出的字体和背景已经有了颜色。由上可知,在输出时候加上“\033[…

    2022年7月24日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号