Java Net服务器&;Android客户端(套接字)发送和;接收

Java Net服务器&;Android客户端(套接字)发送和;接收,java,android,vb.net,sockets,tcp,Java,Android,Vb.net,Sockets,Tcp,我是Android编程新手,我写了一个简单的服务器(VB.NET)/客户端(Java/Android)程序。来自Android/Java的文本已成功发送到VB.Net,但在Android/Java中未收到来自VB.Net的响应(buffer.readLine()返回null) 我错过什么了吗 这是我的密码 VB.NET(服务器) Android/Java(客户端) 看起来您有几个问题: 在服务器端,您正试图从套接字读取一些内容 进入r\u byt,您不会在客户端向其写入任何内容。 当您按下服务

我是Android编程新手,我写了一个简单的服务器(VB.NET)/客户端(Java/Android)程序。来自Android/Java的文本已成功发送到VB.Net,但在Android/Java中未收到来自VB.Net的响应(buffer.readLine()返回null

我错过什么了吗

这是我的密码

VB.NET(服务器)

Android/Java(客户端)


看起来您有几个问题:

  • 在服务器端,您正试图从套接字读取一些内容 进入
    r\u byt
    ,您不会在客户端向其写入任何内容。 当您按下服务器端的发送按钮时,
    r\u byt
    仍然为空,并且 这就是你从客户那里得到的

  • 在客户端,对套接字读取的调用是阻塞的,并且在几分钟之后 秒将导致中出现ANR错误(应用程序无响应) 客户。您应该将套接字读取移动到其他线程 从用户界面。较新的Android版本甚至不允许你阅读 UI线程中的套接字


问候。

看起来您有几个问题:

  • 在服务器端,您正试图从套接字读取一些内容 进入
    r\u byt
    ,您不会在客户端向其写入任何内容。 当您按下服务器端的发送按钮时,
    r\u byt
    仍然为空,并且 这就是你从客户那里得到的

  • 在客户端,对套接字读取的调用是阻塞的,并且在几分钟之后 秒将导致中出现ANR错误(应用程序无响应) 客户。您应该将套接字读取移动到其他线程 从用户界面。较新的Android版本甚至不允许你阅读 UI线程中的套接字


问候。

您的代码看起来是正确的。。。我过去也成功地使用过同样的设置,所以我知道这是可能的。在C#端写代码后,您是否尝试过不关闭流/客户端/服务器,只是为了看看会发生什么?也许在Android读取之前,连接已经关闭了?@thomas88wp谢谢,但我试过了,没有working@thomas88wp感谢你的提示,使用
Threading.Thread.Sleep(1000)
解决了这个问题。Android还没来得及读取iti,连接就已经关闭了。我也遇到了同样的问题。我睡不着觉。还有其他会导致这种行为的因素吗@ThunderRoidy你的代码看起来是正确的。。。我过去也成功地使用过同样的设置,所以我知道这是可能的。在C#端写代码后,您是否尝试过不关闭流/客户端/服务器,只是为了看看会发生什么?也许在Android读取之前,连接已经关闭了?@thomas88wp谢谢,但我试过了,没有working@thomas88wp感谢你的提示,使用
Threading.Thread.Sleep(1000)
解决了这个问题。Android还没来得及读取iti,连接就已经关闭了。我也遇到了同样的问题。我睡不着觉。还有其他会导致这种行为的因素吗@ThunderRoidfirst,r_byt工作正常,我正在向它写入-
stream.println(“Hi-Server…”)第二,w_byt不起作用,我也在写它-
Dim s_byt()作为Byte=Encoding.ASCII.GetBytes(“Got”&vbCr)stream.Write(s_byt,0,s_byt.Length)
你能帮忙吗首先,r_byt工作正常,我在写它-
stream.println(“Hi Server…”)第二,w_byt不起作用,我也在向它写入-
Dim s_byt()作为Byte=Encoding.ASCII.GetBytes(“Got”&vbCr)流。写入(s_byt,0,s_byt.Length)
你能帮忙吗
Imports System.Net.Sockets
Imports System.Text

Public Class Form1

Dim server As New TcpListener(9999)
Dim client As New TcpClient
Dim stream As NetworkStream

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Start_Click(sender As Object, e As EventArgs) Handles Start.Click
    Me.Text = "Waiting...."
    Dim str As String
    server.Start()
    client = server.AcceptTcpClient
    stream = client.GetStream()
    Dim r_byt(client.ReceiveBufferSize) As Byte
    stream.Read(r_byt, 0, client.ReceiveBufferSize)
    Str = Encoding.ASCII.GetString(r_byt)
    Label1.Text = str
End Sub

Private Sub Responce_Click(sender As Object, e As EventArgs) Handles Responce.Click
    Dim s_byt() As Byte = Encoding.ASCII.GetBytes("Got it" & vbCr)
    stream.Write(s_byt, 0, s_byt.Length)
    stream.Flush()
    stream.Close()
    client.Close()
    server.Stop()
End Sub
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Main extends Activity {

Button buttonSend, buttonReceive;
private static Socket socket = null;
PrintStream stream = null;
BufferedReader buffer = null;
String string = "a";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonSend = (Button) findViewById(R.id.buttonSend);
    buttonSend.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            try {
                socket = new Socket("192.168.0.104", 9999);
                stream = new PrintStream(socket.getOutputStream());
                stream.println("Hi Server...");

                buffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                string = buffer.readLine(); 
                Log.d("ServerActivity", " - " + string);
                buffer.close();
                socket.close();
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

    }
}