1

我正在尝试在 android 设备上创建套接字连接。但是一旦我编写Socket s = new Socket("192.168.1.126",3000)并运行它就会给我错误

FATAL EXCEPTION: main
10-01 16:18:55.509: E/AndroidRuntime(15664): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.senddata1/com.example.senddata1.SendData1}: java.lang.NullPointerException: println needs a message
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread.access$500(ActivityThread.java:122)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.os.Looper.loop(Looper.java:132)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread.main(ActivityThread.java:4126)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at java.lang.reflect.Method.invokeNative(Native Method)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at java.lang.reflect.Method.invoke(Method.java:491)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at dalvik.system.NativeStart.main(Native Method)
10-01 16:18:55.509: E/AndroidRuntime(15664): Caused by: java.lang.NullPointerException: println needs a message
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.util.Log.println_native(Native Method)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.util.Log.e(Log.java:230)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at com.example.senddata1.SendData1.onCreate(SendData1.java:66)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
10-01 16:18:55.509: E/AndroidRuntime(15664):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
10-01 16:18:55.509: E/AndroidRuntime(15664):    ... 11 more

请帮我解决我面临的问题。

4

1 回答 1

0

您不能像这样直接传递 IP 地址。您必须将其转换为 InetAddress 类型

private String ip="192.168.1.126";
InetAddress serveradd =  InetAddress.getByName(ip);
socket=new DatagramSocket(6000,serveradd);

Tt 将为 udp 连接创建套接字,或者您可以使用

Socket s=new Socket(serveradd,3000)
于 2012-10-03T12:19:53.723 回答