javasocket server属于已经写好的,期间读到一个参数用了readInt读取
byte[] ex = new byte[5];
in.read(ex);
System.out.println("name: " + new String(ex).trim());
String a = in.readUTF();
System.out.println("state: " + a);
//out.writeUTF("setState");
//出错位置就是在这里,readInt的时候
int flag = in.readInt();
System.out.println("flag: " + flag);
在objective-c中已经成功连接socket服务,并写了一个int值过去,前两个值都读到了,就是java这边readInt时老是报错。。name: NAA
java.io.EOFException
state: setState
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at com.cps.my.socket.test.SocketManager$SSocket.run(SocketManager.java:55)
at java.lang.Thread.run(Thread.java:680)
obj-c写过来的代码 Byte ex[5];
ex[0] = 'N';
ex[1] = 'A';
ex[2] = 'A';
ex[3] = (Byte)((1>>8)&0xff);
ex[4] = (Byte)(1&0xff);
NSData *data = [self convertToJavaUTF8:@"setState"];
[out write:ex maxLength:sizeof(ex)];
[out write:(const uint8_t *)[data bytes] maxLength: [data length]];
//就是写这段的时候出错了,直接用[out write:1 maxLength:1];来写还是不行,其他方法也试过了
Byte buff[4];
int myint = 1;
buff[0] = (myint >> 24) & 0xFF;
buff[1] = (myint >> 16) & 0xFF;
buff[2] = (myint >> 8) & 0xFF;
buff[3] = myint & 0xFF;
//NSData *flag = [self convertToJavaInt:0];
int num = [out write:buff maxLength:1];//请问有没有人知道如何解决~~感谢!
byte[] ex = new byte[5];
in.read(ex);
System.out.println("name: " + new String(ex).trim());
String a = in.readUTF();
System.out.println("state: " + a);
//out.writeUTF("setState");
//出错位置就是在这里,readInt的时候
int flag = in.readInt();
System.out.println("flag: " + flag);
在objective-c中已经成功连接socket服务,并写了一个int值过去,前两个值都读到了,就是java这边readInt时老是报错。。name: NAA
java.io.EOFException
state: setState
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at com.cps.my.socket.test.SocketManager$SSocket.run(SocketManager.java:55)
at java.lang.Thread.run(Thread.java:680)
obj-c写过来的代码 Byte ex[5];
ex[0] = 'N';
ex[1] = 'A';
ex[2] = 'A';
ex[3] = (Byte)((1>>8)&0xff);
ex[4] = (Byte)(1&0xff);
NSData *data = [self convertToJavaUTF8:@"setState"];
[out write:ex maxLength:sizeof(ex)];
[out write:(const uint8_t *)[data bytes] maxLength: [data length]];
//就是写这段的时候出错了,直接用[out write:1 maxLength:1];来写还是不行,其他方法也试过了
Byte buff[4];
int myint = 1;
buff[0] = (myint >> 24) & 0xFF;
buff[1] = (myint >> 16) & 0xFF;
buff[2] = (myint >> 8) & 0xFF;
buff[3] = myint & 0xFF;
//NSData *flag = [self convertToJavaInt:0];
int num = [out write:buff maxLength:1];//请问有没有人知道如何解决~~感谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货