Java与C++的Socket通信有关问题,java socket只接收到4个字符
Java与C++的Socket通信问题,java socket只接收到4个字符
环境:
服务器: CentOS6.5 + Java 1.7
客户端: MacOS + xCode 语言: C++
本人初学编程,按照网上的一些教程,写了一个服务器端程序,通过Socket接收客户端发来的字符串,但是接收到的字符串只有前4个字符,另,我又试着用Java写了一个客户端,给服务器端发送字符串,又能正常收发。这个问题困扰了我很久,不断在网上查方法,都没有结果。
服务器端部份代码:
环境:
服务器: CentOS6.5 + Java 1.7
客户端: MacOS + xCode 语言: C++
本人初学编程,按照网上的一些教程,写了一个服务器端程序,通过Socket接收客户端发来的字符串,但是接收到的字符串只有前4个字符,另,我又试着用Java写了一个客户端,给服务器端发送字符串,又能正常收发。这个问题困扰了我很久,不断在网上查方法,都没有结果。
服务器端部份代码:
private Socket soc=null;
private BufferedReader read=null; //
private PrintStream print =null; //
private String funcName=null;
private String sqlStr=null;
........
String message = null;
while(!(message = read.readLine()).equals("exit"))
{
System.out.println("Recv: " + message); //打印收到的字符串
processString(message); //把接收到的字符串进行分割,以#为分割符,#前的字符串给funcName,#后的字符串给sqlStr
if(((funcName!=null)||(funcName!="")) && ((sqlStr!=null)||(sqlStr!="")))
{
System.out.println("FuncName = " + funcName);
System.out.println("SQL = " + sqlStr); //因为只接收到客户端发来的字符串的前4个字符,程序的下一句无法执行
switch(funcName) //按照funcName的值,选择进行数据库操作
{
case "select" :
{
print.println(selectMysql(sqlStr) + '\0');
break;
}
case "update":
{
print.println(Boolean.toString(updateMysql(sqlStr)) + '\0');
break;
}
case "check":
{
print.println(Boolean.toString(checkMysql(sqlStr)) + '\0');
break;