首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

菜鸟请问QTcpSocket通信有关问题,与android通信

2012-12-19 
初学者请教QTcpSocket通信问题,与android通信请教各位高手一个问题,我想在PC上用Qt做个客户端,与Android上

初学者请教QTcpSocket通信问题,与android通信
请教各位高手一个问题,我想在PC上用Qt做个客户端,与Android上的一个服务端进行通信,不知道用QTcpSocket能不能实现?

我在PC上用QTcpServer做服务端,测试没有问题。在连接Android的服务端的时候就连接失败。



tcpSocket = new QTcpSocket(this);
 tcpSocket->connectToHost("127.0.0.1", 19999);
 qDebug("State:%d\n",tcpSocket->state());   
 
 if(!tcpSocket->waitForConnected(5000))
 {
     return;
 }

 connect(tcpSocket,SIGNAL(disconnected()),this,SLOT(Error()));   //与android连接时就进入这个槽
 
 connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(readMessage()));



感谢各位高手帮忙!
[最优解释]
我晕,你连android 也用环回地址的啊!
[其他解释]
引用:
我晕,你连android 也用环回地址的啊!


嘿嘿,人家把 win & android 运行在一起。。。不知道是不是 android 模拟器,所以才这样。
[其他解释]
感谢回复。

我也是在网上看的资料,就尝试了一下,不知道哪里不对,我看的是一个JAVA客户端跟android服务端能连接上,想尝试用Qt试了一下。

JAVA是这么连接的:

InetAddress serverAddr = null;  
            serverAddr = InetAddress.getByName("127.0.0.1");
            System.out.println("TCP 1111" + "C: Connecting...");  
            socket = new Socket(serverAddr, port);  
            String str = "hi,wufenglong";  
            System.out.println("TCP 221122" + "C:RECEIVE");  
            BufferedOutputStream out = new BufferedOutputStream(socket  
                    .getOutputStream());  
            BufferedInputStream in = new BufferedInputStream(socket  
                    .getInputStream());  
            BufferedReader br = new BufferedReader(new InputStreamReader(  
                    System.in));  
            boolean flag = true;  

while (flag) {  
                System.out.print("请输入1~6的数字,退出输入exit:");  
                String strWord = br.readLine();// 从控制台输入1~6  
                if (strWord.equals("1")) {  
                    out.write("1".getBytes());  


                    out.flush();  
                    System.out.println("1 finish sending the data");  
                    String strFormsocket = readFromSocket(in);  
                    System.out.println("the data sent by server is:/r/n"  
                            + strFormsocket);  
                    System.out  
                            .println("=============================================");  
                }


}



还请指正一下,不知道是哪里的问题,Qt应该怎么连接??
[其他解释]
试2天了 还是不行, 请各位帮忙解答下,不知道是哪里出的问题,对这方面不太了解,万分感谢。

在连接之前先 "cmd.exe /c adb -s 304D194A813FD77E forward tcp:19999 tcp:10086"


tcpSocket = new QTcpSocket(this);
tcpSocket->connectToHost(QHostAddress::LocalHost, 19999);

qDebug("State:%d\n",tcpSocket->state()); //这里是 State:2

if(!tcpSocket->waitForConnected(5000))
{
return;
}

qDebug("State:%d\n",tcpSocket->state()); //这里是 State:3

connect(tcpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(SocketError_W(QAbstractSocket::SocketError))); //进入这个槽 
connect(tcpSocket,SIGNAL(disconnected()),this,SLOT(connectionClosedByServer()));  
connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(readMessage()));





void Client::SocketError_W(QAbstractSocket::SocketError)
{
 qDebug() << tcpSocket->errorString(); 
         //这里是 "The remote host closed the connection" 
}




[其他解释]
已解决,感谢回复。不是socket的问题,呵呵。

热点排行