【发布时间】: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);
}
});
}
}
【问题讨论】: