【问题标题】:Server(C) on the PI doesn't make connection with Client(Java)PI 上的服务器(C)未与客户端(Java)建立连接
【发布时间】:2016-11-04 20:39:13
【问题描述】:

我有 1 个用 Java 编写的客户端和 1 个用 C 编写的 PI 上的服务器,通过套接字建立连接。

起初,服务器和客户端可以相互通信。在 git merge 之后它不再起作用,但没有任何改变。有人能看出什么问题吗?

任何见解将不胜感激。

谢谢。

Udp客户端:

package com.example.jobush50.test2;

import android.os.Message;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class Udpclient extends Thread {


    String ipaddress;
    int port;

    DatagramSocket socket;
    InetAddress address;

    String msg;

    public Udpclient(String addr, int prt) {
        ipaddress = addr;
        port = prt;
    }

    public void message(String message) {
        msg = message;
    }

    public void run() {

        try {

            socket = new DatagramSocket();
            address = InetAddress.getByName(ipaddress);

            // send request
            byte[] buf;
            buf = msg.getBytes();

            DatagramPacket packet =
                    new DatagramPacket(buf, buf.length, address, port);
            socket.send(packet);

        } catch (SocketException e) {
            e.printStackTrace();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (socket != null) {
                socket.close();
            }
        }
    }
}

MainActivity - 创建套接字的位置:

package com.example.jobush50.test2;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText editTextAddress, editTextPort;
    Button buttonConnect;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextAddress = (EditText) findViewById(R.id.editText_ip);
        editTextPort = (EditText) findViewById(R.id.editText_port);
        buttonConnect = (Button) findViewById(R.id.Connect_button);

        buttonConnect.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){

                String ip = editTextAddress.getText().toString();
                int port =  Integer.parseInt(editTextPort.getText().toString());

                //udpclient = new Udpclient(ip,port);
                //udpclient.start();

                Intent intent = new Intent(MainActivity.this,SecondActivity.class);

                intent.putExtra("ip", ip);
                intent.putExtra("port", port);

                startActivity(intent);

            }
        });
    }
}

【问题讨论】:

    标签: java android git sockets


    【解决方案1】:

    您的消息变量为空,导致 NULL 指针异常。

    【讨论】:

      【解决方案2】:

      也许我遗漏了一些东西,但您已经注释掉了创建新 udpclient 并启动它的部分。

      【讨论】:

      • 解决了!好吧,这不是问题,我也认为是这样。我收到的输出是关于消息中的 NULLpointer 执行。它是空的......这就是错误。谢谢你的留言!
      猜你喜欢
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2013-06-06
      相关资源
      最近更新 更多