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)
上一篇 2022年3月11日 上午6:00
下一篇 2022年3月11日 上午6:00


相关推荐

  • 【FPGA——基础篇】同步FIFO与异步FIFO——Verilog实现「建议收藏」

    FIFO是英文FirstInFirstOut的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。作用:FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端是AD数据采集,另一端是计算…

    2022年4月13日
    134
  • Route add 命令举例「建议收藏」

    Route add 命令举例「建议收藏」例子1:要显示IP路由表的完整内容,执行以下命令:  route print  例子2:要显示IP路由表中以10.开始的路由,执行以下命令:  route print 10.*  例子3:要添加默认网关地址为192.168.12.1的默认路由,执行以下命令:  route add 0.0.0.0 mask 0.0.0.0 192.168.12.1  例子4:要添加目标为10.41.0.

    2022年8月12日
    7
  • DEDE在图集列表中调出图集的所有图片[首页也适用]

    DEDE在图集列表中调出图集的所有图片[首页也适用]

    2021年9月19日
    52
  • 用Claude Code构建n8n工作流

    用Claude Code构建n8n工作流

    2026年3月15日
    2
  • MFC线程同步—— CCriticalSection类使用

    MFC线程同步—— CCriticalSection类使用多个线程访问临界区时,可以使用临界区对象。临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区。拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线程放弃临界区时为止。CCriticalSection类的用法:方法一:(1)定义CCriticalSection类的一个全局对象(以使各个线程均能访问):

    2022年7月20日
    14
  • expect详解

    expect详解1 expect 是基于 tcl 演变而来的 所以很多语法和 tcl 类似 基本的语法如下所示 1 1 首行加上 usr bin expect1 2 nbsp spawn 后面加上需要执行的 shell 命令 比如说 spawnsudotou 3expect nbsp 只有 spawn 执行的命令结果才会被 expect 捕捉到 因为 spawn 会启动一个进程 只有这个进程的相关信息才会被捕

    2026年3月19日
    3

发表回复

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

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