android 4.0 tcp socket创建不成功
01-01 00:30:54.279: W/System.err(4111): java.net.ConnectException: failed to connect to /192.168.0.120 (port 45000): connect failed: ECONNREFUSED (Connection refused)01-01 00:30:54.279: W/System.err(4111): at libcore.io.IoBridge.connect(IoBridge.java:114)
01-01 00:30:54.284: W/System.err(4111): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
01-01 00:30:54.284: W/System.err(4111): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
01-01 00:30:54.284: W/System.err(4111): at java.net.Socket.startupSocket(Socket.java:566)
01-01 00:30:54.284: W/System.err(4111): at java.net.Socket.tryAllAddresses(Socket.java:127)
01-01 00:30:54.289: W/System.err(4111): at java.net.Socket.<init>(Socket.java:177)
01-01 00:30:54.289: W/System.err(4111): at java.net.Socket.<init>(Socket.java:149)
01-01 00:30:54.289: W/System.err(4111): at com.xiaoqiang.dr4200.Main$MyHandler.handleMessage(Main.java:148)
01-01 00:30:54.289: W/System.err(4111): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 00:30:54.294: W/System.err(4111): at android.os.Looper.loop(Looper.java:137)
01-01 00:30:54.294: W/System.err(4111): at android.app.ActivityThread.main(ActivityThread.java:4424)
01-01 00:30:54.294: W/System.err(4111): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 00:30:54.299: W/System.err(4111): at java.lang.reflect.Method.invoke(Method.java:511)
01-01 00:30:54.299: W/System.err(4111): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-01 00:30:54.299: W/System.err(4111): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-01 00:30:54.299: W/System.err(4111): at dalvik.system.NativeStart.main(Native Method)
01-01 00:30:54.304: W/System.err(4111): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
01-01 00:30:54.304: W/System.err(4111): at libcore.io.Posix.connect(Native Method)
01-01 00:30:54.309: W/System.err(4111): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
01-01 00:30:54.309: W/System.err(4111): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
01-01 00:30:54.309: W/System.err(4111): at libcore.io.IoBridge.connect(IoBridge.java:112)
01-01 00:30:54.309: W/System.err(4111): ... 15 more
我是在activity里想用udp建立连接并且间隔一秒后在互ping,一直这样保持连接,对方是一个电台,然后用tcp创建socket来发送命令来控制对方,现在是udp能保持ping通,而tcp建立socket就是败了,上边是log错误打印信息,望知道的老师给指导指导,配置权限也给了 1、添加权限
<uses-permission android:name="android.permission.INTERNET" />
2、例程:public class ClientSocket {
static BufferedReader in;
static PrintWriter out;
public static Boolean SendMsg(MyData myData) {
char[] bRecvBuff = new char;
boolean bSuccess = false;
String strRecv = null;
myData.setStatus(Utility.SEND_FAIL);
FileInputStream fis = null;
DataOutputStream dos = null;
int length = 0;
try {
Socket client = null;
SocketAddress address;
if (myData.getType() == 0) {
address = new InetSocketAddress(Utility.SERVERIP,
Utility.SERVERPORT);
} else {
address = new InetSocketAddress(Utility.SERVERIP,
Utility.SERVERPORT + 1);
}
client = new Socket();
client.connect(address, 5000);
client.setSoTimeout(5000);
client.setTcpNoDelay(true);
client.setSoLinger(true, 60);
client.setSendBufferSize(8096);
client.setReceiveBufferSize(8096);
client.setKeepAlive(true);
in = new BufferedReader(new InputStreamReader(
client.getInputStream(), "utf-8"));
String str = myData.getData();
if (myData.getType() == 0) {
out = new PrintWriter(client.getOutputStream());
BufferedReader line = new BufferedReader(new InputStreamReader(
new ByteArrayInputStream(str.getBytes())));
char buf[] = new char;
while (line.read(buf) > 0) {
line.read(buf);
Log.d("send:", String.valueOf(buf));
out.println(buf);
}
out.flush();
} else {
dos = new DataOutputStream(client.getOutputStream());
File file = new File(str);
fis = new FileInputStream(file);
byte sendBytes[] = new byte;
dos.writeByte(myData.getType());
dos.writeBytes(Utility.ENC_TOKEN);
dos.flush();
while ((length = fis.read(sendBytes, 0, sendBytes.length)) > 0) {
dos.write(sendBytes, 0, length);
dos.flush();
}
client.shutdownOutput();
if (fis != null)
fis.close();
}
strRecv = "";
int iRecvLen = in.read(bRecvBuff);
if (iRecvLen > 0) {
bRecvBuff = 0x00;
strRecv = String.valueOf(bRecvBuff);
strRecv = strRecv.substring(0, iRecvLen);
}
if (strRecv != null) {
myData.setData(strRecv);
myData.setStatus(Utility.RECV_SUCCESS);
bSuccess = true;
} else {
myData.setStatus(Utility.RECV_FAIL);
strRecv = "Please check the Socket connection!";
}
Log.d("Socket recieve", strRecv);
// line.close();
if (out != null)
out.close();
in.close();
client.close();
} catch (UnknownHostException e) {
myData.setStatus(Utility.SEND_FAIL);
strRecv = "Please check the Socket connection!";
e.printStackTrace();
} catch (IOException e) {
myData.setStatus(Utility.SEND_FAIL);
strRecv = "Please check the Socket connection!";
e.printStackTrace();
}
return bSuccess;
}
}
TQ-lkp 发表于 2014-6-5 17:19
1、添加权限
2、例程:
没一点注释,我不太能看懂,这个怎么那么长 谢谢老师指导 xiaoqiang9527 发表于 2014-6-5 17:39
谢谢老师指导
,你是怎么通信成功的,我用PC机当服务器,模拟器当客户端能连接成功,,把客户端弄到开发板上 ,通信就链接不上了 TQ-lkp 发表于 2014-6-5 17:19
1、添加权限
2、例程:
只给这一段代码,里面有好多类 都没有啊?
页:
[1]