我在Linux控制檯上運行服務器,它使用C編寫,並在android中創建客戶端。我還沒有得到關於DDMS任何錯誤,但下面的調試消息來DEBUG/SntpClient(60):請求時間失敗:java.net.SocketException:協議不支持的地址系列
11-12 20:38:06.787: DEBUG/SntpClient(60): request time failed:
java.net.SocketException: Address family not supported by protocol
但消息不會去服務器。但如果創建客戶端在C或Java它工作正常。 任何建議。
public class UDPDemo extends Activity {
private EditText mEditText;
private Button sendButton;
private DatagramSocket client_socket;
private static InetAddress IPAddress;
private byte[] send_data = new byte[1024];
static{
try {
IPAddress = InetAddress.getByName("127.0.0.1");
} catch (UnknownHostException e1) {
e1.printStackTrace();
}
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mEditText = (EditText)findViewById(R.id.EditText01);
sendButton = (Button)findViewById(R.id.Button01);
sendButton.setOnTouchListener(send);
}
OnTouchListener send = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP)
try {
client_socket = new DatagramSocket();
String data = mEditText.getText().toString();
send_data = data.getBytes();
DatagramPacket send_packet = new DatagramPacket(send_data,
send_data.length, IPAddress, 5000);
client_socket.send(send_packet);
mEditText.setText("");
}catch (IOException e) {
System.out.println("UDPDemo.enclosing_method() error"+e.getMessage());
e.printStackTrace();
}
return true;
}
};
}
我們看到的是一樣的,但始終如一。它隨機發生,當它發生時,我們需要打開一個新的HTTP連接到服務器。是否可以在最新的Android 2.2或2.3版本中引入該問題。我們在真實設備上沒有看到任何問題。你正在使用哪個版本?你在真實設備上測試過嗎? – 2011-01-11 12:57:15
我正在使用android 2.1。我對真實設備沒有任何問題。它對我來說工作的很好,因爲我正在編譯服務器(使用C語言)和arm編譯器,android用於編譯C應用程序(如果您檢查ndk文檔)。 – Vivek 2011-01-12 11:43:15