簡體   English   中英

Android新的套接字錯誤

[英]Android new Socket error

我正在嘗試在樹莓派和android設備之間創建WiFi連接。 我是設置WiFi連接的初學者,但是找到了一些建立連接的在線代碼。 這里在pi上運行服務器C代碼:

double C[SIZE];
char D[SIZE];
bool bResult = false;

/* if no command line arguments passed, we'll default to 
    these two port number */

int port = 5710;
int dataport = -1;

if (argc > 1)
{
    port = atoi(argv[1]);

    if (argc > 2)
        dataport = atoi(argv[2]);
}

printf("Server, listening on port %d, datagram port %d\n", port, dataport);
fflush(NULL);

Server mylink(port, dataport, &bResult);
if (!bResult)
{
    printf("Failed to create Server object!\n");
    return 0;
}

/* put some dummy data in our arrays */

for (int i = 0; i < SIZE; i++)
{
    C[i] = (double) i*i+0.5;
    D[i] = i;
}
printf("Server, waiting for connection...\n");
fflush(NULL);
mylink.Connect();

printf("Server, got a connection...\n");
fflush(NULL);

for (int i = 0; i < NUM_PACKS; i++)
{
    printf("Server, sending bytes, iteration %d...\n", i);
    fflush(NULL);
    mylink.SendBytes(D, SIZE);

    printf("Server, receiving doubles, iteration %d...\n", i);
    fflush(NULL);
    mylink.RecvDoubles(C, SIZE);
}

printf("Server, closing connection...\n");
fflush(NULL);
mylink.Close();

printf("Server, done...\n");
fflush(NULL);
return 0;

這是連接到樹莓派服務器的android代碼:

Socket myClient = new Socket("192.168.XXX.XXX", 5710);
SocketAddress remotAddrr = new InetSocketAddress("192.168.XXX.XXX", 5710);  
myClient.connect(remotAddr,10000);
booleanfeedbackconnec = myClient.isConnected();
int feedbackgetport = myClient.getPort();

我認為代碼的問題是這一行:

Socket myClient = new Socket("192.168.XXX.XXX", 5710);

它往往會引發異常,有時甚至會停止應用程序。 我已請求清單文件的權限,但無法弄清楚此行有什么問題

謝謝

使用此代碼,您可以將套接字連接到給定的機器和端口

Socket myClient = new Socket("192.168.XXX.XXX", 5710);

然后,您創建一個端點並嘗試再次連接

SocketAddress remotAddrr = new InetSocketAddress("192.168.XXX.XXX", 5710);
myClient.connect(remotAddr,10000);

僅其中之一就足夠了。

看一下Socket類:

插座()

創建一個新的未連接的套接字

套接字(字符串dstName,int dstPort)

創建一個新的流媒體套接字,該套接字連接到由參數dstName和dstPort指定的目標主機。

如果在使用第二個構造函數后將調用: Socket.connect(SocketAddress remoteAddr,int timeout)

您將得到IOException:

如果套接字已經連接或連接時發生錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM