当前位置: 首页 > news >正文

Android6 Socket通信

服务器代码:


import java.net.*;
import java.io.*;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class SimpleServer
{
public static void main(String[] args)
throws IOException
{
// 创建一个ServerSocket,用于监听客户端Socket的连接请求
ServerSocket ss = new ServerSocket(30000); //①
// 采用循环不断接受来自客户端的请求
while (true)
{
// 每当接受到客户端Socket的请求,服务器端也对应产生一个Socket
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
os.write("您好,您收到了服务器的新年祝福!\n"
.getBytes("utf-8"));
// 关闭输出流,关闭Socket
os.close();
s.close();
}
}
}

 

 

android代码:

package org.crazyit.net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

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

/**
* Description:
* <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
* <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class SimpleClient extends Activity
{
EditText show;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (EditText) findViewById(R.id.show);
new Thread()
{
@Override
public void run()
{
try
{
// 建立连接到远程服务器的Socket
Socket socket = new Socket("219.217.246.92" , 30000); //①
// 将Socket对应的输入流包装成BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
// 进行普通IO操作
String line = br.readLine();
show.setText("来自服务器的数据:" + line);
// 关闭输入流、socket
br.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}.start();
}
}

 

 

layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:cursorVisible="false"
/>
</LinearLayout>

 

 

androidxml:添加网络权限

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
<activity android:name=".SimpleClient"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<!-- 授权访问互联网-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

 

主要客户机ip设置:

校园网可能不行,百度的ip不行,ipconfig查询。

转载于:https://www.cnblogs.com/hitxx/p/4506433.html

相关文章:

  • 给列表项目添加动画
  • R(1)Mac OS 下安装R语言开发环境
  • PHP自动加载__autoload的工作机制
  • UISlide属性
  • 521Today
  • 谷歌浏览器的粗略使用方法
  • 不错的网站
  • android:persistent属性
  • centos 7.0运行docker出现内核报错解决方法
  • 团队项目—第二阶段第四天
  • Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • log4j一些配置说明
  • C#中锁定Word内容,样把人家的锁定内容破解了
  • 如何在Fedora或CentOS上使用Samba共享文件夹
  • $translatePartialLoader加载失败及解决方式
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Akka系列(七):Actor持久化之Akka persistence
  • Angular 2 DI - IoC DI - 1
  • co模块的前端实现
  • CSS实用技巧干货
  • Java 网络编程(2):UDP 的使用
  • MD5加密原理解析及OC版原理实现
  • windows下使用nginx调试简介
  • 从PHP迁移至Golang - 基础篇
  • 前端学习笔记之观察者模式
  • 如何合理的规划jvm性能调优
  • 山寨一个 Promise
  • 深度学习在携程攻略社区的应用
  • 新书推荐|Windows黑客编程技术详解
  • 函数计算新功能-----支持C#函数
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​MySQL主从复制一致性检测
  • ​虚拟化系列介绍(十)
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (3)选择元素——(17)练习(Exercises)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (ros//EnvironmentVariables)ros环境变量
  • (离散数学)逻辑连接词
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (数据结构)顺序表的定义
  • (译) 函数式 JS #1:简介
  • (转)C#调用WebService 基础
  • .gitignore文件设置了忽略但不生效
  • .net Signalr 使用笔记
  • .Net程序帮助文档制作
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [100天算法】-目标和(day 79)
  • [20180129]bash显示path环境变量.txt
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [android] 切换界面的通用处理
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [Geek Challenge 2023] web题解