android与PC用socket通信

问题描述

android与PC用socket通信
写了一个小的测试程序,android手机和PC进行通信。
服务器(PC)端代码:
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)代码:
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(""192.168.0.100"" 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();
}
}

先启动PC机上的服务端,再启动安卓手机客户端,结果客户端无反应。
初步判断应该是客户端socket构造函数里的第一个参数IP地址错误,请问这个地址应该填公网地址还是本地局域网地址?(网络环境:路由器宽带接入,PC有线接路由器,Android无线连WIFI)

解决方案

首先要确认pc和手机在同一个局域网,然后都是用本地ip。
Good luck!

解决方案二:
肯定是局域网啊,你这手机和PC实际都是接在路由器上面的

解决方案三:
ping得通就肯定可以

时间: 2024-09-20 03:21:30

android与PC用socket通信的相关文章

android和pc端socket链接重置抛出:Connection reset

问题描述 android和pc端socket链接重置抛出:Connection reset 这个是android客户端的socket @Override public void run() { try { socket = new Socket(); System.out.println("body-->" + body); socket.connect(new InetSocketAddress(Constans.IP, Constans.PORT), Constans.TIM

android 中socket通信

问题描述 android 中socket通信 private Button send; private TextView rec; private static Socket client; private boolean result=false; private int a=0; private PrintWriter write; private static BufferedReader read; public static int ac=0; private InputStream

android-安卓手机能不能在3G或4G网络下,进行点对点socket通信?

问题描述 安卓手机能不能在3G或4G网络下,进行点对点socket通信? 我试过在wifi的情况下,两个安卓手机可以进行点对点通信,但是在3G或4G网时就不行了,想实现通信必须通过pc服务端. 3G或4G网络下,两台安卓手机能否进行socket点对点通信,如果能的话,是用什么办法呢,有什么例子 解决方案 android 3G网络下Socket通信 解决方案二: 可以的,但是还是需要一个服务器负责建立连接. 解决方案三: 最少有一个设备在公网上啊,或者有一个公网上的服务器中转.或者两个设备在同一个

Android客户端与PC服务器如何实现Socket通信

本文介绍Android终端持续扫描AP信息并发送给服务器端的实现.首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路.使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器.其中Android终端通过WIFI连接和PC处于同一局域网. 1. PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求. 使用ServerSocket对象监听来自客户端的Soc

pc作为服务端,android端作为客户端,如何通过USB进行socket通信。

问题描述 pc作为服务端,android端作为客户端,如何通过USB进行socket通信. pc作为服务端,android端作为客户端,如何通过USB进行socket通信. 大概思路是什么

实现Android和PC之间的蓝牙通信

   这两天想实现PC和安卓手机的通信,限于水平,知道的方法大概有两种:基于数据包的socket和蓝牙.虽然看起来简单,但调也调了两天多.自己测试了下socket,在室内WIFI环境下时延大概是0.1s.而在3G网络下时延居然达3s之多,而且只要不发数据,端口貌似就会断掉,总之,很不爽.于是,便考虑了蓝牙的方法. 实现手机和PC的蓝牙通信,一种是最常用的蓝牙虚拟串口,这种方法可以通过配置非常简单地实现,很多外置蓝牙GPS都用这种做法.但大名鼎鼎的安卓却不支持,因此对大部分外置GPS都不提供支持(

模拟器与pc通讯-android模拟器与pc的相互通信

问题描述 android模拟器与pc的相互通信 我现在再能实现模拟器联系pc,pc作为服务器被动的做出反应.不能实现pc发消息给模拟器.那要如何实现相互的通信呢 代码如下: package com.example.socket_android; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWrit

Android的Socket通信编程实现程序

java在socket通信方面上已经有了很好的范例,我只是抛砖引玉,将其引入到android之中,疏漏之处在所难免,很多地方也值得深思与考量,高手不必拍砖,可跳过此文.下面,用敲门的方式演示Android如何实现套接字的通信. 服务器程序 服务器程序需要在PC上运行,该程序比较的简单,因此不需要建立Android项目,直接定义一个JAVA类,并且运行该类即可.它仅仅建立ServerSocket监听,并使用Socket获取输入输出流  代码如下 复制代码 import java.io.IOExce

Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)

ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教. 一.Socket通信简介  Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是"请求-响应方式",即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据.而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求. 那