当前位置: 技术问答>java相关
请大家帮忙解决一个问题!
来源: 互联网 发布时间:2015-08-29
本文导语: 有一个关于socket的服务器和客户端通讯程序, 建立连接后,客户端用如下语句给服务器发数据: OutputStream outputstream = sslSock.getOutputStream(); PrintWriter output = new PrintWriter(sslSock.getOutputStream()); output.println("i love this...
有一个关于socket的服务器和客户端通讯程序,
建立连接后,客户端用如下语句给服务器发数据:
OutputStream outputstream = sslSock.getOutputStream();
PrintWriter output = new PrintWriter(sslSock.getOutputStream());
output.println("i love this game!nLength: 14nnaaaaaaaaaaaaaa");
output.flush();
服务器端用如下语句接收并分解数据:
while ((string = bufferedreader.readLine ()) != null)
{
if( string.equals("") ) break; System.out.println(string);
if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
}
char[] charCSR=new char[ Integer.parseInt( string ) ];
bufferedreader.read(charCSR, 0, Integer.parseInt( string ))
但是运行时,老是出现:
java.lang.NumberFormatException:
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:476)错误!
但通过上面画~~~~~线的语句打印出string得值,可以知道string确实为14,但为什么不能转换呢?是字符编码的原因?如何决呢?
建立连接后,客户端用如下语句给服务器发数据:
OutputStream outputstream = sslSock.getOutputStream();
PrintWriter output = new PrintWriter(sslSock.getOutputStream());
output.println("i love this game!nLength: 14nnaaaaaaaaaaaaaa");
output.flush();
服务器端用如下语句接收并分解数据:
while ((string = bufferedreader.readLine ()) != null)
{
if( string.equals("") ) break; System.out.println(string);
if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
}
char[] charCSR=new char[ Integer.parseInt( string ) ];
bufferedreader.read(charCSR, 0, Integer.parseInt( string ))
但是运行时,老是出现:
java.lang.NumberFormatException:
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:476)错误!
但通过上面画~~~~~线的语句打印出string得值,可以知道string确实为14,但为什么不能转换呢?是字符编码的原因?如何决呢?
|
int len = 0;
while ((string = bufferedreader.readLine ()) != null)
{
if( string.equals("") ) break; System.out.println(string);
if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
len = Integer.parseInt( string.trim() )
}
}
char[] charCSR=new char[ len ];
bufferedreader.read(charCSR, 0, len)
while ((string = bufferedreader.readLine ()) != null)
{
if( string.equals("") ) break; System.out.println(string);
if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
len = Integer.parseInt( string.trim() )
}
}
char[] charCSR=new char[ len ];
bufferedreader.read(charCSR, 0, len)
|
char[] charCSR=new char[ Integer.parseInt( string ) ];
bufferedreader.read(charCSR, 0, Integer.parseInt( string ))
这两句写在while外面吗?那string 应该是 ""才是啊。
bufferedreader.read(charCSR, 0, Integer.parseInt( string ))
这两句写在while外面吗?那string 应该是 ""才是啊。