Articles of tcp

我们可以直接从Android设备发送数据到另一台android设备(p2p)吗?

我需要发送数据从一个Android设备到另一个Android设备直接(P2P)后,他们通过服务器find对方。 我读了一些东西,这是不能做的,但我不明白为什么可以访问互联网(它有一个IP权利?)的设备不能创build一个对等连接? 如果这不可能,为什么? 如果是这样的话? PS:我知道没有互联网我们不能达到这个目的,这个问题假设两个目标都有互联网连接,无论是gprs / 3g / 4g还是wifi互联网连接! 注意:我希望这是可能的无线和非WiFi互联网!

如何使Android上的客户端在C#上监听服务器?

我有Android上的客户端和C#上的服务器。 客户端发送消息到服务器,这很好。 但我需要服务器发送请求列表中的文件夹和文件在指定的目录,不知道该怎么做,因为客户端没有得到任何消息从服务器。 客户端的部分代码是用来监听的,但是应用程序只是在closures服务器应用程序之前进行了一些操作,然后再次运行,但是仍然不会读取任何内容。 提前致谢 客户: package com.app.client.app; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import android.util.Log; public class my_activity extends Activity { private TextView txt; @Override public void onCreate(Bundle savedInstanceState) { […]

无法通过无线连接通过亚行的Android – 我需要root访问?

我基本上是这样做的: 我怎样才能通过TCP连接到与ADB的Android? 与Droid X2。 我有USBdebugging,我的手机通过USB插入。 IP地址是10.0.78.33(我已经validation了我可以在该IP上的电话上进行TCP通信,我可以ping通它)。 我去命令行并执行以下操作: >> adb tcpip 5555 在TCP模式下重新启动端口:5555 >> adb connect 10.0.78.33:5555 无法连接到10.0.78.33:5555 任何想法,为什么这是行不通的? 为了做到这一点,我需要root权限吗? 我试图避免生根电话。 谢谢!

Android的TCP服务器客户端通信

我在这里find了一个写得很好的教程,用于在android上进行服 奇迹般有效。 但这只是沟通的一种方式。 我想在客户端听服务器响应,但不知道我在这里错了。 这里是我尝试进行更改的服务器的代码。 服务器 public class Server extends Activity { private ServerSocket serverSocket; Handler updateConversationHandler; Thread serverThread = null; private TextView text; public static final int SERVERPORT = 8080; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (TextView) findViewById(R.id.text2); updateConversationHandler = new Handler(); this.serverThread = new Thread(new ServerThread()); this.serverThread.start(); } @Override […]

react-native-tcp不适用于Android 7+

我正在开发的应用程序在Android和iOS的所有其他版本中运行良好,但networkingfunction是真正的中心。 我没有额外的debugging信息。 但有几个问题。 在主线程上调用react-native-tcp吗? 在这种情况下,它不会驱逐一个错误? https://developer.android.com/about/versions/nougat/android-7.0-changes.html 如果是这样,我怎么能在其他线程上使用它? 编辑:似乎一次只能打开一个套接字,无论其UDP或TCP,如果我试图打开2并行它不会让我们。

在Android-x86上网本上使用基于蓝牙的ADBdebugging应用程序

我设法在我的上网本上设置了一个很好的工作的Android-x86,并启用了蓝牙,并与我的Windows 7开发工作站配对(!)。 我最初希望能像使用USB一样使用真正的手机来使用adb。 所以我插入了一个专用的USB公头到公头电缆,没有发生任何事情。 原来Android-x86不支持通过USB线连接。 然后我find了关于如何通过WiFi来做ADB的 很好的说明 。 问题是我在我的Android-x86上网本上有WiFi,但在我的Windows 7台式机上没有。 我可以select购买WiFiencryption狗,但我更喜欢更直接的解决scheme。 我碰巧在我的Android-x86上网本和我的电脑上都有蓝牙function,所以我希望能find一个解决scheme,使我能够通过蓝牙快速使用ADB 。 我在这里发现了非常令人鼓舞的指令: https : //stackoverflow.com/a/11129818,但不幸的是,我所谓的基于ADB over Network无处可寻我的Android-x86设备上。 任何提示或想法如何通过蓝牙使ADB在我的Android-x86上网本上工作? 我相信,如果我可以让我的Android-x86的蓝牙有一个IP地址,我可以从那里去,但我该怎么做呢? ( ifconfig在Android的terminal模拟器中不起作用)。

android如何发送和接收图像和位置(使用地图)在群聊中使用xmpp-smack

我正在开发使用android–xmpp的群聊应用程序,因为我不知道如何发送和recive图片图片或位置(使用地图)。 所以任何一个人都可以请给我这样做的方式。 目前,我得到了短信和添加到列表视图,如下, Message msg = new Message(to, Message.Type.groupchat); msg.setBody(text); if (Constants.connection != null) { try { Constants.connection.sendPacket(msg); Log.d("Send to room : Name : ", to); Log.d("store", "store data to db"); //DBAdapter.addUserData(new UserData(text, "", "1" ,beam_id)); } catch (Exception e) { Log.d("ooo", "msg exception" + e.getMessage()); } messages.add(text); runOnUiThread(new Runnable() { public void run() { […]

在Java / Android中更快地检测到损坏的套接字

背景 我的应用程序从手机收集数据并发送到远程服务器。 数据首先存储在内存中(或足够大的文件),每隔X秒左右,应用程序就会刷新数据并将其发送到服务器。 每个数据发送都是成功的关键,我宁愿把数据发送两次也不发送。 问题 作为testing,我设置应用程序每5秒发送带有时间戳的数据,这意味着每隔5秒在服务器上出现一个新行。 如果我杀了服务器,我希望线路停止,他们现在应该被写入内存。 当我再次启用服务器时,我应该能够确认没有事件丢失。 但问题是,当我杀死服务器时,IO操作开始失败大约需要20秒,这意味着在这20秒内,应用程序愉快地发送事件并将它们从内存中移除,但是它们永远不会到达服务器并且永远丢失。 我需要一种方法来确保数据实际到达服务器。 这可能是更基本的TCP问题之一,但不是更less,我还没有find任何解决办法。 我试过的东西 设置Socket.setTcpNoDelay(true) 删除所有缓冲的作家,直接使用OutputStream 每次发送后冲洗stream 附加信息 我不能改变服务器如何响应,意思是我不能告诉服务器确认数据(比TCP的机制更多),服务器只是静静地接受数据而不发送任何东西。 代码片段 课程初始化: socket = new Socket(host, port); socket.setTcpNoDelay(true); 数据发送地点: while(!dataList.isEmpty()) { String data = dataList.removeFirst(); inMemoryCount -= data.length(); try { OutputStream os = socket.getOutputStream(); os.write(data.getBytes()); os.flush(); } catch(IOException e) { inMemoryCount += data.length(); dataList.addFirst(data); socket = null; return […]

使用Android模拟器通过IP和端口访问networking设备

为什么我的Android的Java应用程序不连接到服务器? 我在android模拟器运行应用程序,并在我的电脑端口9999和主机127.0.0.1服务器,但只是不连接,我认为这种方法是不好的android应用程序。 更新:我使用API​​ 8 … Android 2.2! 这是工作好! ! 谢谢大家 ;) 这是我的源代码: import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; //Java imports //import android.util.Log; import java.io.*; import java.net.*; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; public class MainActivity extends Activity{ //Variaveis Interface private Button ligar; private Button enviar; private EditText […]

为什么DefaultHttpClient通过半closures套接字发送数据?

我使用Android(2.3.x)上的ThreadSafeClientConnManager DefaultHttpClient发送HTTP请求到我的REST服务器(embedded式Jetty)。 在大约200秒的空闲时间之后,服务器用[FIN]closuresTCP连接。 Android客户端使用[ACK]进行响应。 这应该并且确实将套接字置于半closures状态(服务器仍在监听,但不能发送数据)。 我希望当客户端尝试再次使用该连接(通过HttpClient.execute )时, DefaultHttpClient会检测到半closures状态,closures客户端的套接字(因此发送它[FIN / ACK]来结束closures) ,并为请求打开一个新的连接。 但是,这是一个问题。 而是通过半封闭套接字发送新的HTTP请求。 只有在发送完成后,客户端检测到半closures状态并closures套接字(将[FIN]发送到服务器)。 当然,服务器不能响应请求(它已经发送了它的[FIN]),所以客户端认为请求失败,并通过一个新的套接字/连接自动重试。 最终结果是服务器查看并处理请求的两个副本。 有想法该怎么解决这个吗? (我的服务器用第二个副本做了正确的事情,但我很烦恼有效负载传输了两次。) 当第一次尝试写入新的HTTP数据包时,DefaultHttpClient是否应检测到套接字已closures,立即closures该套接字并启动一个新套接字? 在服务器发送一个[FIN]之后的几分钟,一个新的HTTP请求在一个套接字上被发送,我感到困惑。